0

FBMLアプリケーションでは、次のように拡張アクセス許可の入力を求めることができます。

Facebook.showPermissionDialog('publish_stream', callback);

これにより、ライトボックスがレンダリングされました(FB.ui({method:'foo'、display:'iframe'});とよく似ています)。

ドキュメントに表示されていることから、より拡張されたアクセス許可を求めるプロンプトを表示する唯一の方法は、ウィンドウをFB.login()でポップアップさせるか、ユーザーをoauthダイアログの全画面にリダイレクトすることです。ポップアップウィンドウは信頼性が低く、後者はユーザーインタラクションフローでは意味がないため、前者に依存したくありません。ライトボックスは理にかなっている唯一の方法です。

oauthダイアログをiframeとして表示できる場合、このコードは理論的には機能します。

FB.ui({method: 'oauth',
    display: 'iframe',
    access_token: 'foo',
    scope: 'publish_stream'
    }, callback);

ただし、oauthダイアログは、「ページ」および「モバイル」としての表示のみをサポートしています。

私が見落とした方法はありますか?

4

1 に答える 1

1

考えてみてください: もちろん、iframe で認証ダイアログを使用することはできません。これはセキュリティの問題だからです。

ポップアップに表示するかリダイレクトすると、ユーザーはサイトのアドレスが実際に facebook.com であることを確認できます。

ライトボックスで認証ダイアログをiframeなどとして使用する場合、ログインフォームに入力されたデータをユーザーが確認する方法はありません(ログインしていない場合は表示されます)その時点で Facebook に) は実際には Facebook に送信されます。または、データをサーバーに送信する独自​​のフォームを設定したばかりの場合は Facebookのログイン データをフィッシングしようとしているためです…</p>

于 2012-05-31T09:36:19.267 に答える