Поскольку я действительно не понимаю $ user = $ facebook-> getUser (); (он возвращает NULL, даже если пользователь вошел в систему …) Я пытаюсь использовать этот код. Проблема в том, что он дает «Активный токен доступа должен использоваться для запроса информации о текущем пользователе». OAuthException, и если я добавлю код переадресации на вход в раздел Catch, он попадет в бесконечный цикл перенаправления … Может ли кто-нибудь мне помочь?
Спасибо! 🙂
try { $user_profile = $facebook->api('/me'); $scope = 'publish_stream,user_photos'; $scope_params = explode(',',$scope); $permissions = $facebook->api("/me/permissions"); if( array_key_exists('publish_stream', $permissions['data'][0]) && array_key_exists('user_photos', $permissions['data'][0])) { // facebook logic }else { ?> <!doctype html> <html xmlns:fb="http://www.facebook.com/2008/fbml"> <head> <title>Redirect</title> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <script language=javascript>window.open('<?php echo $loginUrl ?>', '_parent', '')</script> </head> <body> Redirecting... </body> </html> <?php exit; } }catch (FacebookApiException $e) { echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>'; }
Вам необходимо передать токен доступа к API-интерфейсу Graph. Каждый токен доступа имеет время истечения срока действия, и после его прохождения вам необходимо повторно аутентифицировать себя. Вы должны проверить наличие токена доступа в PHP SDK $facebook->getAccessToken();
( $facebook->getAccessToken();
). Если его нет – попробуйте повторно аутентифицировать себя. Если id не помогает, попробуйте использовать другое, новое приложение facebook. Вся аутентификация описана здесь: http://developers.facebook.com/docs/authentication/
Приобретение доступа вручную, без использования токена PHP SDK, хорошо описано в ссылке выше.
решение заключалось в том, чтобы поместить весь код в один файл index.php
Цикл происходит следующим образом:
Кажется, существует задержка между моментом истечения срока действия токена, или пользователь разрешает приложение, и когда сценарий oauth фактически подбирает изменение.
Может быть?