Facebook PHP SDK v4: isValidRedirect () всегда возвращает false

0

Я попытался использовать новейший sdk php для разработки приложения с моим сайтом. но я всегда не получаю правильный сеанс. то я проверяю файл sdk и обнаруживаю, что isValidRedirect() возвращает false. Я попытался изменить настройки приложения, но не работал для меня. так, ребята, пожалуйста, проверьте вложение и где не так?

есть мой код ниже:

//localhost/facebook/demo.php

<?php
@session_start();
// added in v4.0.0
// Skip these two lines if you're using Composer
require __DIR__ . '/autoload.php';

//require 'functions.php';  
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\Entities\AccessToken;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\HttpClients\FacebookHttpable;
// init app with app id and secret
FacebookSession::setDefaultApplication( 'app_id','app_secrect' );
// login helper with redirect_uri
$helper = new FacebookRedirectLoginHelper('http://demo.localhost/facebook/demo.php/' );
$loginUrl = $helper->getLoginUrl();
echo '<hr />';
echo $loginUrl;
echo '<hr />';

try {
    $session = $helper->getSessionFromRedirect();
    // $request = new FacebookRequest( $session, 'GET', '/me' );
    // print_r($request);
} catch( FacebookRequestException $ex ) {
    echo 22;
  // When Facebook returns an error
} catch( Exception $ex ) {
    echo 33;
  // When validation fails or other local issues
}
?>
<a href="<?php echo $helper->getLoginUrl(); ?>">Login with Facebook</a></div>

Благодарю.

php file url: demo.localhost/facebook/demo.php

Безопасный URL холста: demo.localhost/facebook/

Сайт: URL сайта: demo.localhost/facebook/Мобильный сайт: demo.localhost/facebook/

Деактивировать URL-адрес обратного вызова: https://demo.localhost/facebook/

  • 0
    У меня та же проблема, хотя мой код работал нормально вчера. Не могу понять, что не так
  • 0
    взгляните на stackoverflow.com/a/33654680/1034359
Теги:
facebook
sdk

1 ответ

1

Сегодня у меня была такая же проблема, и я заметил, что состояние всегда отличается от состояния в сеансе и возвращенного состояния.

После нескольких поисковых запросов кто-то упомянул в другом сообщении (ошибка входа в PHP facebook SDK 4.0), что функция getLoginUrl() изменяет значение переменной состояния. Как было предложено в этой статье и в комментарии, вам нужно переместить $helper->getLoginUrl() после $helper->getSessionFromRedirect(). Меня устраивает.

Надеюсь, это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню