2

Facebook のアクセス許可ダイアログを iframe 内に配置しようとしていますが、Facebook のドキュメントが不足しているため、あまり進歩していません。

news.yahoo.com は、私がエミュレートしたいことを行います。

ニュース記事をクリックすると、facebook でログインと表示されます。ユーザーを認証するための最初の oauth ダイアログ (許可を求めない) の後、yahoo pop の別のダイアログが yahoo URL から表示されます。このダイアログには、アクセス許可ダイアログが IFrame として含まれています。

これを達成するために使用できる API を知っている人はいますか?

フィドラー トレースは、yahoo URL が呼び出していることを示しています。

permissions.request メソッドを持つ uiserver.php エンドポイント。

https://www.facebook.com/connect/uiserver.php?method=permissions.request&app_id=194699337231859&display=iframe&redirect_uri=https%3A%2F%2Fopen.login.yahoo.com%2Fopenid%2Fyrp%2Fsc_check&cancel_url=https%3A% 2F%2Fopen.login.yahoo.com%2Fopenid%2Fyrp%2Fsc_check&perms=user_birthday%2Cuser_likes%2Cemail%2Cpublish_actions&response_type=code&locale=en_US

FB の JavaScript SDK を使用してこれを実行しようとすると: FB.ui({ method: 'permissions_request', perms: 'read_stream,publish_stream,user_photos', display: 'iframe' },
function(response){ alert("badfood") ; アラート (応答); });

別のエンドポイントに移動します: facebook.com/dialog/permissions_request? ...

そして、有用なデバッグ情報なしで facebook から 500 サーバー エラーが発生します。

ありがとう

4

2 に答える 2

1

いくつかのこと。

1) 最初にパラメータを追加しますshow_error=true。これにより、エラーの実際の原因について詳しく知ることができます。

2) Facebook には、任意のダイアログを表示する複数の方法があります。フィドラー リクエストで、display=iframeパラメーターに注意してください。これは主にキャンバス アプリケーションに使用されますが、通常の iFrame 表示にも役立ちます。ライトボックスで認証ダイアログを開きます。

3) SDK を同期的にロードしてみてください。ページ上部の body タグの後に含めるよう Facebook から指示されている非同期参照を削除し、2 番目の方法を使用します。all.jsおよびfb-rootdiv タグを含めてFB.init、呼び出しの直前にロードしますFB.ui

4)エコー ツールを確認します。

このツールは、GET パラメータまたは . また、OAuth 2.0 ベータ移行が有効になっている Canvas アプリケーションで使用されるように、signed_request パラメーターをデコードすることもできます。これは、キャンバス認証のデバッグに非常に役立ちます。

http://developers.facebook.com/docs/reference/dialogs/

于 2012-07-17T00:13:53.260 に答える
0

クリックジャッキングのリスクがあるため、iframe内に認証/許可ダイアログを読み込むことは許可されておらず、不可能です。これが行われているのを目にするサイトは、Facebookと特別な契約を結んでおり、これを行うことができます。

于 2012-07-23T03:44:52.183 に答える