1

自分のビジネス ページのページ タブに表示されることを意図したアプリケーションを Facebook で作成しています。閲覧ユーザーと対話する必要があるため、拡張権限が必要です。

提案された手順に従いましたが、今は壁にぶつかっています。私のアプリケーションは iFrame にあり、拡張された権利のリクエストはリダイレクトを使用します。認証を確認する必要があるページを取得できますが、[許可] をクリックすると、Facebook は Facebook ページ タブに戻るのではなく、アプリケーションがホストされているページにリダイレクトします。適切な権利が承認されると、アプリケーションの残りの部分は正常に動作するので、リダイレクトの問題であることはわかっていますが、すべてを試したように感じ、多くの人が同じ問題を抱えているようには見えません. 誰かが私を正しい方向に向けることができれば幸いです。

ありがとうございました!

これが私のコードです:

$app_id = "myappid";

$canvas_page = "http://wheremyappishosted/";

$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);

$user_id = $data["user_id"];
$access_token = $data['oauth_token'];

if (empty($data["user_id"])) {
 $auth_url = "https://graph.facebook.com/oauth/authorize?client_id=".$app_id."&redirect_uri=".urlencode($canvas_page)."&scope=user_photos,friends_photos,publish_stream,user_likes";
 die("<script> top.location.href='" . $auth_url . "'</script>");
}

$f = json_decode(file_get_contents("https://graph.facebook.com/".$user_id."?access_token=".$access_token."&fields=name,albums,likes"), true);
4

4 に答える 4

4

興味のある人のために、私はこれを回避する方法を見つけたと思います。ユーザーをアプリケーションにリダイレクトする代わりに、小さなスクリプトにリダイレクトしてから、ページタブにリダイレクトします。アプリはすでに承認されているため、すべてが機能し、signed_requestがユーザー情報とともに渡されます。それが本当に合法的な方法かどうかはわかりませんが、機能します。

于 2011-02-14T17:53:06.890 に答える
0

リダイレクト変数をターゲット ページに設定してください:

$redirect = "http://foo.com";
于 2011-02-14T16:05:16.167 に答える
0

redirect_uri を「http[s]://apps.facebook.com/YOUR_APP」ではなく「http[s]://apps.facebook.com/YOUR_APP/」に設定します。末尾のスラッシュに注意してください。

于 2011-09-13T13:22:42.053 に答える
0

サーバースクリプトを使用して未解決のリダイレクトの問題が発生した場合、javascript sdk を使用する方がはるかに良い選択であることがわかりました。これにより、アプリのページはそのまま維持されます。

https://developers.facebook.com/docs/facebook-login/getting-started-web/

于 2013-05-29T15:19:11.273 に答える