ここで、トークンの生成/拡張に関して、Android/iOS SDKについてこれまでに発見したことがあります。
トークンを拡張するSDKと3つのメソッドでトークンクライアント側を生成する方法が2つ見つかりました。
生成中:
1)FacebookアプリSSOトークンを生成します。
2)Webブラウザ(iOS)/ Webダイアログ(Android/BB)。 Android/BBのiOSとSSO以外のトークンでSSOトークンを生成
これらのトークンはすべて長期トークンです。
拡張:
1)iOS/Androidアプリ。 Androidの場合、ユーザーがアプリケーションにサインインしている場合のみ、そうでなければ、バインドされたサービスへの呼び出しは何も返しません。エラーでもありません。そのシナリオでiOSをテストしていない。
2)auth.extendSSOAccessToken。これは、私が知る限り、公式アプリが存在しない場合でもiOS SDKが使用する古いAPIのエンドポイントです。 SSO(Androidのポップアップ・ダイアログ)で生成されなかったトークンでこのエンドポイントを使用すると、トークンがSSOで生成されていないことを示すmsgというエラー・コード10が表示されます。これにより、トークンがSSOを介して生成されている限り動作する可能性があります。あなたの疑惑が間違っている、それはあなたに "Facebookアプリケーションのアクセストークンが提供されていません"というメッセージのエラーコード100を与えます。これは、私が知る限り、Androidでは完全に役に立たないこのメソッドを残します。
3)oauth/access_token。これはFBが彼らのroadmapで使用するように指示するエンドポイントです。もちろん、この方法では、a)あなたのAPP_SECRET(FBが強く示唆していない)をapk逆コンパイル/アンパッケージを介して公開します。b)短期トークンを長期トークンに拡張するためにのみ機能します。だからAndroid/iOSのときに返されるデフォルトの長期トークンで始める場合は、まず短期トークンを生成してから、このメソッドのクライアントサイド(安全ではない)またはサーバサイド(それ以外のすべての人のために)。長期トークンから短期トークンを生成するにはどうすればよいですか?私が知っていたと願います。(。
これまでのところ、これを達成するためのアイデアは見つかりませんでした。
これは、少なくとも、サーバーを持つ人々に長期トークンを拡張するための安全な方法を提供します。
あなたの質問に興味があります。クライアントがhttpリクエストに秘密を入れることによってリスクが生成されるのですか、それともクライアントがあなたのandroid.apkに秘密を持つことによって作成されるのでしょうか? – Mel
GETリクエストには含まれているため、サードパーティのサーバーがなければ保護することはできません。なぜ本当にそれを保護する方法がない場合、あなたがそれを公開してはならないと言っているのはなぜなのか、私には不思議に思う。 oauth/access_tokenはモバイル/デスクトップアプリケーションには使用できないし、auth.extendSSOAccessTokenはSSOなしでは使用できないようだ。 要するに、offline_accessパーミッションを削除する前にFacebookは適切なextendAccessToken実装をAndroid SDKに追加する必要があります。もちろん、これは起こりません。 – roee88
完了するために、extendAccessTokenに関する機能リクエストがあります:http://developers.facebook.com/bugs/329021273822477?browse=search_4f8ae199bad505720643390 client_secretを保護するための別のレポートを追加する必要があります。 – roee88