Facebook PHP SDK v4:isValidRedirect()始终返回false

时间:2015-01-29 08:40:13

标签: php facebook sdk

我试图使用最新的php的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文件网址: demo.localhost / Facebook的/ demo.php

安全画布网址: demo.localhost / Facebook的/

网站: 网站网址: demo.localhost / Facebook的/ 移动网站网址: demo.localhost / Facebook的/

取消授权回拨网址: https://demo.localhost/facebook/

1 个答案:

答案 0 :(得分:1)

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

经过一些谷歌搜索,有人在另一篇文章中提到 (PHP facebook SDK 4.0 login error)函数getLoginUrl()改变状态变量值。根据该帖子和评论中的建议,您需要在$helper->getLoginUrl()之后移动$helper->getSessionFromRedirect()。它对我有用。

我希望这会有所帮助。