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ダイアログは、「ページ」および「モバイル」としての表示のみをサポートしています。
私が見落とした方法はありますか?