Facebook PHP SDK v4: isValidRedirect() 总是返回 false


Facebook PHP SDK v4: isValidRedirect() always return false

我尝试使用最新的 PHP SDK 在我的网站上开发应用程序。 但我总是没有得到正确的会话。 然后,我检查 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 文件网址:demo.localhost/facebook/demo.php

安全画布网址:demo.localhost/facebook/

网站:网站网址:demo.localhost/facebook/移动网站网址:demo.localhost/facebook/

取消对回调网址的授权:https://demo.localhost/facebook/

我今天遇到了同样的问题,我注意到会话中的状态和返回的状态总是不同的。

在谷歌上搜索了几下之后,有人在另一篇文章中提到(PHP facebook SDK 4.0 登录错误)函数 getLoginUrl() 更改状态变量值。正如该帖子和评论中所建议的,您需要在$helper->getSessionFromRedirect()之后移动$helper->getLoginUrl()。它对我有用。

我希望这有所帮助。