2013-10-24 13 views
7

私は最初に注意します。私はJavaとAndroid開発には非常に新しいです。 Facebookの例「sessionlogin」を使って作業しています。 Facebookのアプリがないうちに動作します。私はFacebookのアプリをインストールし、コードを実行しようとすると、エラーUnknownError:ApiException:キーハッシュ****が一致しません... FBアプリケーションがインストールされている場合

UnknownError: ApiException:Key hash BGyx5d0rMOuY9aQqZK4B9q04+no does not match any stored key hashes 

で失敗し、私は結論付けた最初のものは、キーが一致していない明らかだったが、なぜ?私はアプリがなぜ機能しないのか、そしてハッシュキーの違いがFBアプリのためにあるのか混乱しているのですか?それは私のアプリのキーを使用していますか? FBアプリはデータにアクセスするには署名付きアプリが必要ですか?

私が行ったことのいくつかについては、アプリケーションの開始時にハッシュキーを出力するコードスニペットを追加しました。すべての場合、BGyx5d0rMOuY9aQqZK4B9q04 + no =が表示されました。アプリはデバッグモードになっていたので、このsolutionで説明したようにアプリに署名して公開しました。私が使用していたハッシュは返されました。例えば、NzXZN1fDDeK7PNL + QzHDAKUsg =(FB上で、コンソールのcmdから返されました)、スニペットはアプリが実際に実行されたときにBW0xQ5kipPoWYWWJd1g3yaKCe6M =を返していました。

数十の記事を読み、それらの約半分を処理した後、私は何が間違っているのかを勉強しようと多くの時間を失い、今は完全に無知です。どのように実例を得ることができますか?基本的な設定が欠けていますか?

詳細:

  • のJava 7リリース25
  • 勝つ8 64ビット
  • ADTあなたのonCreateにこれを追加し、thisガイドのトラブルシューティングのセクションから
+0

あなたのアプリ設定に例外メッセージのキーを追加しようとしましたか?例外はサーバー側で生成されるため、最も正確です。 –

+0

あなたはFBアプリの設定を参照しているサーバー側を意味する?もしそうなら、私はこれを試しました。 –

+0

OK、あなたのアプリの設定にどのハッシュキーを追加したのか、エラーを見ているのはあなたの質問からはわかりません。私はあなたが2つの異なるキーストアを使用していると仮定しています.1つはデバッグ用、もう1つは署名付きAPK用です。各キーストアのキーハッシュを生成するために使用したメソッドと、実行しようとしたときのそれぞれのエラーは何ですか(デバッグアプリケーションは動作していますが、動作していないもの)。 –

答えて

1

(日食)を:

try { 
      PackageInfo info = context.getPackageManager().getPackageInfo(
        "com.mypackage.name", 
        PackageManager.GET_SIGNATURES); 
      for (Signature signature : info.signatures) { 
       MessageDigest md = MessageDigest.getInstance("SHA"); 
       md.update(signature.toByteArray()); 
       Log.e("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
       } 
     } catch (NameNotFoundException e) { 

     } catch (NoSuchAlgorithmException e) { 

     } 

現状のkeyHashを追加します。あなたのエラーログのものと非常に似ていますが、/ &-が置き換えられます。

+0

私はこれをチェックします、少し前に私がそれに着く前になります。ありがとう –

関連する問題