アプリケーションでネイティブの Facebook API を使用しています。
Facebook ID で Android アプリにログインしようとしていますが、Facebook エラーinvalid
キーが表示されます。
どうすればこれを解決できますか?
アプリケーションでネイティブの Facebook API を使用しています。
Facebook ID で Android アプリにログインしようとしていますが、Facebook エラーinvalid
キーが表示されます。
どうすればこれを解決できますか?
http://sean.lyn.ch/2011/07/android-the-facebook-sdk-sso-and-you/
この質問は、ここ (および Facebook Android SDK) で回答されてからかなり経ちますが、このスレッドに出くわした人のために、完全な解決策を見つけようと思います。
Facebook Android SDK を Phonegap および Phonegap Facebook プラグインと組み合わせて使用して開発していました。認証ステップは、エミュレーターから実際のデバイスにデプロイするまでは問題なく機能していました。adb logcat を実行したときに見た失敗は次のとおりです。
D/Facebook-authorize( 2194): Login failed: invalid_key
W/System.err( 2194): com.facebook.android.FacebookError: invalid_key
これがエミュレーターでは機能したが、デバイスでは失敗した理由がわかりません。Facebook には、署名されていない .apk アプリを配布できないという理由で許可する包括的なポリシーがあるのではないかと思います。
問題は、認証を許可するために、Facebook がアプリケーションの署名に使用されたキーに関する情報を必要とすることです。私が知らなかったのは、デバッグキーストアを使用してビルドをデバイスにプッシュすると、Eclipse 環境がビルドに自動的に署名するということです。デバッグ キーストアの詳細については、Android ドキュメント - アプリケーションの署名を参照してください。
署名に関する情報を Facebook に提供するには、上記の Jay が提供するコマンドを実行する必要があります (ここで繰り返します)。
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
これにより、証明書と呼ばれる署名を識別する短い文字列 (「=」や「/」などの文字が含まれる場合があります) が生成されます。これを取得したら、Facebook に渡す必要があります。
Facebook の開発者ページでアプリケーションを見つけます (まだセットアップしていない場合は、新しいアプリケーションを作成します)。アプリケーションの概要ページが表示されたら、[設定の編集] を選択し、左側にある [モバイルとデバイス] を選択します。Android セクションの下に、キー ハッシュのボックスが表示されます。上記のコマンドからの証明書文字列をこのボックスに貼り付けて、保存をクリックします。
伝播するまで数分待ってください。準備は完了です。
初心者の私は、キー ハッシュを生成する標準的な手順が思ったほど簡単に機能しないことに戸惑いました。
しかし、私はたくさん検索し、このWebサイトでハッシュキーを生成するこの信じられないほど簡単な方法を見つけました: http://www.helloandroid.com/tutorials/using-facebook-sdk-android-development-part-1
has キーを生成したら、アプリのコントロール パネルでアプリケーションにハッシュ キーを追加するための facebook ガイドに従うことができます。
お役に立てれば。