0

我有一个使用 PHP SDK 的 Facebook 应用程序。这一切都很好,除了当用户在移动设备上访问它(通过apps.facebook.com/myappname/使用他们的网络浏览器访问)时,登录会陷入无限重定向循环(可能会不断地将他们重定向回 Facebook 登录页面)。

登录代码非常标准:

$userID = $facebook->getUser();
if ($userID) {
    [store stuff in session]

} else {
    [Javascript redirect to $facebook->getLoginUrl()]
}

这在以前是有效的,但一定是被 Facebook 最近的变化之一打破了。

4

1 回答 1

0

在这里回答我自己的问题。Facebook 似乎不再使用移动设备发送 signed_request POST 数据,这就是我的登录代码无法像以前那样工作的原因。此外,在成功登录后,我被重定向到apps.facebook.com/myappname(为了将应用程序保留在 Facebook iframe 中),但这导致登录过程在移动设备上循环。

我的解决方法是更改​​应用程序设置中的移动 Web URL 以包含查询字符串参数,这样我就可以区分来自移动/桌面的登录后请求。对于正常请求,我会重定向到 apps.facebook.com/myappname。对于移动的我没有。因此,移动设备不再位于 Facebook iframe 中,但这实际上在某种程度上更好。

于 2012-11-07T13:35:39.847 回答