拜托,我需要帮助。我处理这个问题1个月了!
我想使用 PHP 和 php-sdk 3.1.1 实现 facebook 连接登录到我的网站。简而言之,我的代码可以离线工作(在本地主机上),但不能在线工作,这会导致“重定向循环太多(在 Chrome 上)”:错误 310 (net::ERR_TOO_MANY_REDIRECTS):重定向太多。
这是我的代码:
1/我加载 facebook connect SDK 并初始化它:
require 'src/facebook.php';
$facebook = new Facebook(array(
'appId' => '209633612480053',
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
));
请注意,我在 facebook-developer 页面上创建了两个应用程序,一个用于离线测试,另一个用于在线测试。而且我确保在测试时在两对 appId/secret(在线和离线)之间正确切换。所以这不是facebbok-connect init不好的问题。
2/我尝试获取用户信息:
$uid = $facebook->getUser();
if($uid)
{
/*
* Get user information.
*/
$user = $facebook->api('me/');
print_r($user); // Display user info.
}
else
{
/*
* Redirect to FB login URL to allow access.
*/
$loginURL = $facebook->getLoginURL();
echo '<script> top.location.href=\''.$loginURL.'\'</script>';
}
就这么简单:如果用户连接到 Facebook,则显示其信息,否则,重定向到 Facebook 登录页面以允许访问。
它在离线状态下运行得很好,但在在线状态下,我收到一个 chrome 错误:
This webpage has a redirect loop
The webpage at https://www.facebook.com/dialog/oauth?client_id=209633612480053&redirect_uri=http%3A%2F%2Fwww.bluward.com%2Foauth%2Ffacebook&state=551f60cd4be6cd8ed1622f8168a5219a#_=_ has resulted in too many redirects. Clearing your cookies for this site or allowing third-party cookies may fix the problem. If not, it is possibly a server configuration issue and not a problem with your computer.
一些附加信息:在线,我使用 1and1 主机提供商,并且为了确保与离线服务器(这是 MAMP Pro)具有相同的服务器配置,我上传了 sams php.ini 文件。
请,如果有人有想法,或者遇到类似的问题,我会很高兴获得帮助。
预先感谢您的所有帮助。
UPDATE:
我更新了代码以专注于有问题的行,因此我没有重定向到 facebook 登录页面,而是显示重定向 URL,因此我只需单击即可登录:
$uid = $facebook->getUser();
if($uid)
{
/*
* Get user information.
*/
$user = $facebook->api('me/');
print_r($user); // Display user info.
}
else
{
/*
* Redirect to FB login URL to allow access.
*/
$loginURL = $facebook->getLoginURL();
echo $loginURL; // <-- HERE I CHANGED THE CODE TO DISPLAY LOGIN URL
}
我注意到 Facebook 无限地重定向到我的脚本页面。仅有的code
URL 栏上的参数发生变化。
那么,为什么 Facebook 会重定向到我的脚本页面而不向我提供用户信息?
请问,有什么想法吗?