2

TL;DR バージョン:

Web アプリケーションは実際にはサーバー上で実行されていないため、Web アプリケーションのコールバック URL がなくても Facebook で認証できますか。

完全な説明:

私は、「アプリ」自体がローカルで実行されている一連の HTML/JS/CSS (デスクトップ ブラウザーで [ファイル] -> [開く] など) である、connectedTV プラットフォーム アプリケーションの構築に取り組んでおり、Facebook をこれに統合したいと考えています。

問題は、Web に対する Facebook のすべての OAuth 呼び出しで、認証を完了するためにユーザーをリダイレクトするコールバック URL が必要になることです。ここに問題があります。このアプリケーションには URL はありません。デバイス上でローカルに実行されている Web ページです。

これが帯域外認証の設計目的であることは知っていますが、Facebook OAuth システムでこれを使用する方法 (または非コールバック OAuth フローを実行する方法) に関するドキュメントが見つからないようです。

4

3 に答える 3

4

デスクトップ認証、またはサーバーなしで FB に対して認証している状況について説明しています。OAuth ダイアログに渡すリダイレクト URL はhttps://www.facebook.com/connect/login_success.html、ブラウザがリダイレクトするときにアクセス トークンを取得できます。これについては、デスクトップ アプリセクション (https://developers.facebook.com/docs/authentication/)の下部にある FB ドキュメントですべて読むことができます。

質問を読み直してください。アプリケーションはブラウザ内で実行されるため、別のウィンドウを開いて認証し、そこからアクセス トークンを取得する必要があります。

于 2011-09-30T03:21:30.560 に答える
0

HTML / Javascriptを実行している場合は、JavascriptSDKを使用してください。FB.loginを使用し、そこからのコールバックからアクセストークンを取得するだけで、その人にログインできます。

于 2011-09-29T18:48:17.993 に答える
0

これが直接可能だとは本当に思いません。まったく文書化されていないものがない限り、Facebook には URL をロードする以外に認証データを送信するメカニズムがありません。認証データが送信される場所の一種の「ホワイトリスト」として機能する、セキュリティ対策として少なくとも部分的に意図されていると確信しています。

あなたがそれを回避するために私が考えることができる唯一の方法は、リダイレクトに応答して認証データを保存できるサーバーのどこかにURLを設定し、クライアント側のコードでそのサーバーをポーリングして取得することです。事実上、一種のプロキシ認証サービスです。おそらく、Facebook の認証画面が表示された 2 つ目のブラウザ ウィンドウを開く必要がありますが、理論上は機能します。

于 2011-09-29T21:27:53.830 に答える