1

最近、Facebook のアプリケーションが正常に動作しなくなったことに気付きました。

誰かがまだ承認していないアプリを開くと、リンク付きの簡単なコンテンツを表示し、リンクがクリックされると、アプリケーションでリダイレクトを発行します (Spring では "redirect:...url.." を返します)。

https://www.facebook.com/dialog/oauth?scope=email&client_id=317651918315301&redirect_uri=https%3A%2F%2Fapps.facebook.com%2Facnestop&scope=email&response_type=トークン

指定された場所で 302 を iFrame に送信します。

空白の iFrame が表示され、FB から次のヘッダーが返されます。

Cache-Control   private, no-cache, no-store, must-revalidate
Connection  keep-alive
Content-Encoding    gzip
Content-Type    text/html; charset=utf-8
Date    Fri, 25 May 2012 10:37:11 GMT
Expires Sat, 01 Jan 2000 00:00:00 GMT
P3P CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p"
Pragma  no-cache
Set-Cookie  _e_1vFX_0=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly locale=pl_PL; expires=Fri, 01-Jun-2012 10:37:11 GMT; path=/; domain=.facebook.com wd=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/; domain=.facebook.com; httponly
Transfer-Encoding   chunked
X-Content-Type-Options  nosniff
X-FB-Debug  VYI+cCm/Vfpx3US82n06uFuw5gF6UQDg+8GUSpGUL9A=
X-Frame-Options DENY
X-XSS-Protection    0
x-content-security-policy...    allow *;script-src https://*.facebook.com http://*.facebook.com https://*.fbcdn.net http://*.fbcdn.net *.facebook.net *.google-analytics.com *.virtualearth.net *.google.com 127.0.0.1:* *.spotilocal.com:*;options inline-script eval-script;report-uri https://www.facebook.com/csp.php

空白の iFrame だけが表示されます。

リダイレクト先の URL をブラウザに直接貼り付けると、アプリを承認するための Facebook プロンプトが表示されます。

ブラウザーで同じリンクを貼り付けて開くことから iFrame がリダイレクトされると、動作が異なる理由はありますか?

今日これに気づきました。以前はアプリは正常に機能していました。

これは私のサンプルアプリです: https://apps.facebook.com/acnestop/

4

3 に答える 3

2

ユーザーがアプリケーションを承認していない場合、それを処理する必要はありません。facebook が処理します。

ただし、ユーザーがログインしていない場合は getLoginURL を使用できます

$loginUrl = $facebook->getLoginUrl(
    array(
        'scope'         => 'email,user_checkins,etc',
        'redirect_uri'  => 'https://apps.facebook.com/my-application/' 
    )
);

redirect_uri の末尾のスラッシュを忘れないでください

お役に立てれば

于 2012-05-25T11:16:24.107 に答える