woshidan's blog

あいとゆうきとITと、とっておきの話。

AndroidのFacebook SDKでInvalid key hash

FacebookSDKを使ったアプリをリリースしたら下記のようなメッセージが出ました。

Invalid key hash. The key hash xxxxxxxxxxxxxxxxxxxxxx does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/ APP-ID

このメッセージからすると、デバッグ用のキーハッシュしか登録されていないので、Facebookアプリの設定画面から xxxxxxxxxxxxxxxxxxxxxxを追加してやればよさそうなのですが、 xxxxxxxxxxxxxxxxxxxxxx を追加しても出ない。

色々試して、下記のコード(参考)をAndroidで実行して出力した結果

   
The generate hash key is wrong. You may get the hash key using two steps. One is through command prompt. Another one is through coding. Hash key through command prompt working on first time only. I don't know the reason. I have also got the same problem. So i tried it through programatically.

Follow this steps:

Paste the following code in oncreate().

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

    } catch (NoSuchAlgorithmException e) {

    }

xxxxxxxxxxxxxxxxxxxxxx(人目には同じ)だったのですが、こちらをコピペして追加したらエラーメッセージは出なく、認証は通るようになりました。

Android - facebook SDK を使ったアプリ作りたいときに Key hash がマッチしなくて怒られるときの対策 - Qiita

この記事に書いてあることに近いのですが、xxxxxxxxxxxxxxxxxxxxxx の部分に=以外記号等は特に含まれなかったケースなのでメモ...。

ハッシュお化けはいるよ!!