так как все изменения, сделанные в Facebook в прошлом году, многое изменилось. есть некоторые решения в Интернете, но они больше не работают. (КАК ЭТО ОДИН: Используя PHP или JavaScript Facebook SDK, как я могу заставить пользователя войти на мой сайт? )
Я внедрил соединение facebook с PHP facebook SDK на моем сайте. проблема заключается в том, что пользователи, которые уже одобрили мое приложение, также вошли в свою фейсбук. В этом случае я хочу, чтобы они автоматически вошли в систему, и не нужно снова нажимать кнопку подключения. Я предполагаю, что есть способ сделать это, используя php + js, но я не мог найти, как и поверить, я пробовал несколько вещей. проблема в том, что проверка пользователя php
$user = $facebook->getUser();
не распознает сеанс facebook, и я думаю, что, возможно, я могу запустить его с помощью JS. поэтому я устал добавлять этот код для страницы в JS, и ALRETS работают, говоря, что пользователь подключен, но нет сеанса доступа к PHP, поэтому PHP SDK не распознает, что пользователь подключен:
<div id="fb-root"></div> <script> window.fbAsyncInit = function() { FB.init({ appId : '<?=FACEBOOK_APP_ID?>', status : true, // cookie : true, // xfbml : true, // oauth : true }); // Additional initialization code here //--------> this isn't need to work its only a check FB.getLoginStatus( function(response) { //console.log(response); if (response.status === 'connected') { var accessToken = response.authResponse.accessToken; alert(accessToken); } else if (response.status === 'not_authorized') { //login function } else { //login function } }, true); FB.Event.subscribe('auth.authResponseChange', function(response) { //console.log('The status of the session changed to: '+response.status); alert(response.status); }); //--------> END OF CHECK!! }; // Load the SDK Asynchronously (function(d){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/<?=$fb_api_lang?>/all.js#xfbml=1"; ref.parentNode.insertBefore(js, ref); }(document)); </script>
если кто-нибудь найдет решение этой проблемы и может поделиться ею, будет очень благодарен.