3

我正在为 Facebook 使用PHP-SDK,并让该示例在我的本地主机上运行。但是,当在服务器上构建脚本时,脚本一直忙于从我的脚本重定向到 facebook 并返回。(错误:Fout 310 (net::ERR_TOO_MANY_REDIRECTS):)

似乎更多的人遇到了这个问题(这里这里这里这里)。虽然,我找不到明确的答案是什么问题。

重定向到 facebook(响应 302):

https://www.facebook.com/dialog/oauth?client_id=166958180001271&redirect_uri=http%3A%2F%2Fdomain.com%2Fscripts%2FGateway.php%3Faction%3DAllowFacebookAccessAction%26app%3D14&state=0dbc178a375595da4751265a7147c01e#_=_

重定向到 mydomain(响应 302):

http://domain.com/scripts/Gateway.php?action=AllowFacebookAccessAction&app=14&state=0dbc178a375595da4751265a7147c01e&code=AQD-dTeyns0OWpGb_PzfHxUy2iRmpc1XgP6Q24DDRX8MiRTE10lV-b-aSNIlOLVHk576vRs3H8Pf9n0kGwU827MrkzUCUoQGFGEQBkkOJnCy9zb6hZs7TVBsKL2iSuZIhDjLsCOPeKy3zfb37Q6LGhtMICCdB_IQAvU0uRvAkSAX8tdVJ65PEv8imx-2yvLaMoGJleZwKogh7m03vlhV8hJk#_=_

造成此问题的部分代码

...            
    $facebook = new FacebookApi(array(
            'appId' => $app->getProperty('apiKey'),
            'secret' => $app->getProperty('secretKey'),
        ));
    $user = $facebook->getUser();
    if (!$user) {    
        header('location: ' . $facebook->getLoginUrl());
        exit;
    }
...

更新:

我排除了它的服务器设置。我能够在该服务器上运行原始示例脚本。

4

1 回答 1

1

secret在您的应用设置https://developers.facebook.com/apps中重新检查您的应用,否则转储会话

<?php print_r($_SESSION); ?>

并检查返回的令牌https://developers.facebook.com/tools/debug

很确定令牌被破坏或秘密。

如果没有,它在你没有显示的代码中。

于 2012-11-11T23:21:28.047 回答