2017-03-08 18 views
0

私のアンドロイドアプリにFacebookのログインボタンがあります。私はそのボタンを使ってログインできます。ボタンはFacebookのログインボタンを使用してログインできます。私は成功裏にログアウトした後に2回目のログインに失敗しました。これは私が得たログイン応答ですFacebookログインエラーが表示されます

Facebook ErrorInvalid key hash。鍵ハッシュHG2kYV1on + 6yY1J7stl4KGrNsPA =は、格納されている鍵ハッシュと一致しません。アプリのキーハッシュを設定するhttps://developers.facebook.com/apps/596405140754842/

しかし、ハッシュキーをFacebookのデフォルファーのページに保存されたキーハッシュにコピーした後、ログインしました。このアプリを別の電話にインストールすると、同じ問題が発生しました。その無効なハッシュキーをFacebookの開発者ページに保存されたハッシュキーにコピーすることで解決しました。私はまた、Facebookのアプリケーションなしで携帯電話に私のアプリをインストールしました。その場合、新しいポップアップウィンドウが電子メールとFacebookのパスワードを尋ねる。私は、ログインおよびログアウト何度でもこれらの携帯電話に

をしかし、私はすべての携帯電話用のハッシュキーを対処せずにFacebookアプリケーションを携帯電話に取り組んでFacebookのログインが必要

+2

[Facebook android app error:無効なキーハッシュ](http://stackoverflow.com/questions/30934225/facebook-android-app-error-invalid-key-hash)の可能な複製 –

答えて

1

使用して2 keyHashes

  1. を作成することができますコマンドプロンプト:

    $ keytool -exportcert -alias androiddebugkey -keystore "C:\Documents and Settings\Administrator.android\debug.keystore" | "C:\OpenSSL\bin\openssl" sha1 -binary |"C:\OpenSSL\bin\openssl" base64 
    
  2. 以下のコードを使用:

    private String getAppKeyHash() { 
        try { 
        PackageInfo info = getPackageManager().getPackageInfo(
          getPackageName(), PackageManager.GET_SIGNATURES); 
        for (Signature signature : info.signatures) { 
         MessageDigest md; 
    
         md = MessageDigest.getInstance("SHA"); 
         md.update(signature.toByteArray()); 
         String something = new String(Base64.encode(md.digest(), 0)); 
         return something; 
    
        } 
    } catch (Exception e) { 
        Log.e("exception", e.toString()); 
    } 
    return null; 
    

    }

Facebookの開発者がアプリケーション内のキーHasesの両方を追加します。

これは動作します。

関連する問題