0

PHP SDK を使用した Facebook アプリがあります。これはすべて正常に機能していますが、ユーザーがモバイル デバイスで ( apps.facebook.com/myappname/Web ブラウザーを使用してアクセスして) アクセスすると、ログインが無限のリダイレクト ループに陥ります (おそらく継続的に Facebook ログイン ページにリダイレクトされます)。

ログインコードはかなり標準的です:

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

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

これは以前は機能していましたが、Facebook の最近の変更の 1 つで機能しなくなったに違いありません。

4

1 に答える 1

0

ここで私自身の質問に答えます。Facebookがモバイルデバイスでsigned_requestPOSTデータを送信しなくなったようです。そのため、ログインコードが以前のように機能していませんでした。また、ログインに成功した後、(アプリをFacebook iframe内に保持するために)リダイレクトしてapps.facebook.com/myappnameいましたが、これにより、モバイルデバイスでログインプロセスがループしていました。

私の修正は、アプリ設定のモバイルWeb URLを変更して、クエリ文字列パラメーターを含めることでした。これにより、モバイル/デスクトップからのログイン後のリクエストを区別できます。通常のリクエストでは、apps.facebook.com/myappnameにリダイレクトします。モバイルのものについては、私はしません。そのため、モバイルデバイスはFacebook iframe内に配置されなくなりましたが、これはある意味で実際には優れています。

于 2012-11-07T13:35:39.847 に答える