development

Facebook 키 해시가 저장된 키 해시와 일치하지 않습니다.

big-blog 2020. 12. 13. 10:12
반응형

Facebook 키 해시가 저장된 키 해시와 일치하지 않습니다.


Facebook 해시 키에 정말 문제가 있습니다. 내 이클립스에서 생성했습니다. 증명 :

그런 다음 https://developers.facebook.com/ 으로 이동 하여 새 앱을 등록했습니다.

마지막으로 Facebook 개발자의 설정에서 해시 키를 설정했습니다.

그러나 나는 계속해서 동일한 오류 로그를 얻습니다. "키 해시 B5dWUEYfZJL / ........... jyA = 저장된 키 해시와 일치하지 않습니다."

아무도 내가 뭘 잘못했는지 또는이 문제를 어떻게 해결할 수 있는지 알고 있습니까? 내 앱 내에서 HelloFacebookSample의 ID와 이름을 사용하면 모든 것이 작동합니다. 따라서 내가 설정 한 키 해시, ID 또는 이름과 관련이 있습니다.

감사합니다, Yenthe


Facebook 앱을 설치하지 않고 로그인이 작동하고 "해시 키가 일치하지 않음"오류로 인해 Facebook 앱이 설치되었을 때 작동하지 않는 경우 다음 단계를 수행하십시오.

1) 앱을 실행하고 페이스 북으로 로그인을 시도합니다. 대화 상자가 열리고 다음과 같은 메시지가 표시됩니다. "페이스 북 개발자 콘솔에서 키를 찾을 수 없으며 해시 키도 표시됩니다.

2) 해시 키를 기록해 둡니다.

3) 처음 API 키를 생성 한 페이스 북 개발자 콘솔에 넣고 new로 해시 키를 제거하고 저장합니다. 이제 끝났습니다. 이전에 사용한 키 저장소로 게시 된 앱을 다운로드 한 사람은 누구나 facebook에 로그인 할 수 있습니다.


몇 시간 동안 노력한 끝에 마침내 해결책을 찾았습니다.

  1. Facebook 웹 사이트 (developers.facebook.com)에서 모든 앱을 삭제합니다.
  2. 아래의 debug.keystore 파일을 삭제하십시오. C:\Users\yourUserName\.android
  3. 새 키 생성 (앱을 다시 실행하여)
  4. developers.facebook.com에서 새 앱을 만들고 새 해시 키를 추가합니다.
  5. 앱 다시 실행
  6. 성공!

비슷한 문제가 발생했습니다. 해결책은 놀랍도록 간단합니다.

오류 메시지는 다음과 같습니다.

07-05 ...... Invalid key hash. The key hash sL1***************VY= does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/150*******778
07-05 ......     at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:191)

https://developers.facebook.com에 로그인 하고 "설정"탭을 선택한 다음 저장된 목록에 키 해시 "sL1 *************** VY ="를 추가하면됩니다. Android 패널의 키 해시.


나는 개발 중에 같은 문제에 직면했고 페이스 북에서 공유를 테스트하기 위해 해시 키를 얻어야했고,이 문제를 해결하는 동안 몇 가지 문제를 겪었습니다.

1- facebook에서 openSSL 명령을 사용하여 해시 키를 가져 오기 위해 제공하는 명령은 코드로 패키지 정보에서 서명을 추출하여 얻은 올바른 해시를 제공하지 않았습니다. 두 번째 방법으로 해시를 얻는 것이 정확했습니다.

2- 어떤 이유로 든 문서에서 개발자 설정으로 이동하여 '샘플 앱'에 대한 해시 키를 추가하라고 지시합니다. 저는 개발자의 모든 해시 키가 있어야한다고 생각했고 그게 내 실수였습니다. 모든 앱에는 추가 할 자체 해시 키 필드는 app / settings / android로 이동합니다.

여기에 이미지 설명 입력

그게 다야 .. 그리고 기록을 위해 Windows 7 x64 비트에서 openssl-0.9.8k_X64를 사용했는데 잘못된 해시가 생성되는 이유를 모르겠습니다.

이 코드를 사용하여 해시를 얻었습니다.

private void printKeyHash() {
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo("YOUR PACKAGE NAME", 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) {
        Log.e("KeyHash:", e.toString());
    } catch (NoSuchAlgorithmException e) {
        Log.e("KeyHash:", e.toString());
    }
}

그러나 이것은 또한 로그에 올바른 키해시를 인쇄하지 않을 수도 있습니다. 적어도 내 장치와 컴퓨터에서 디버그 할 때 시계에서는 로그를 인쇄하기 직전에 올바른 해시를 표시하지만 로그에서는 다른 해시를 표시하고 첫 번째는 올바른 것입니다.

어쨌든 명령이나 이클립스를 사용하여 키의 SHA 16 진수 시퀀스를보고 온라인에서 base 64로 변환 할 수 있습니다. http://tomeko.net/online_tools/hex_to_base64.php?lang=en 도움이 될 수있는 웹 사이트가 있습니다.

행운을 빕니다


이것은 발생할 수있는 경우이며 내 오류를 해결 한 이유는 다음과 같습니다.

에서 https://developers.facebook.com/quickstarts 당신이 실행 한 후

OSX / Linux :

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Windows :

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

이 메시지 Enter keystore password:가 표시 되면 실수로 잘못된 비밀번호를 입력했을 수 있습니다 . 기본 비밀번호는 " android "입니다. 다른 암호를 입력하면 다른 / 잘못된 해시 키가 제공됩니다. 앱 페이지Key Hashes입력란에 올바른 해시 키를 붙여 넣으세요 .

이것은 내 문제를 해결했습니다. 이것이 내가 만든이 특정 오류를 만든 사람에게 도움이되기를 바랍니다.


Eclipse / keytool에서 SHA1 키를 추가하면 FB에서 앱을 만들 때만 도움이되었으며 다시 빌드 한 후에는 항상 OP 오류가 발생했습니다.

내 문제를 해결 한 것은 Facebook 대시 보드 설정에 오류 메시지의 키를 추가하는 것이 었습니다.


나는 두 달 동안이 문제를 겪었습니다. 내 키 해시는 최대 9 개까지 올라갔습니다. 오늘 드디어 간단한 해결책을 찾았습니다.

1 단계:

휴대폰의 facebook 개발자 페이지에서 다운로드 한 facebook sdk를 설치합니다. 일반 페이스 북 앱을 설치하지 마십시오. 페이스 북에 로그인 할 수 있는지 확인하십시오. 그런 다음 로그 아웃하십시오.

2 단계:

Playstore에 업로드 할 때와 같이 최종 릴리스 키를 사용하여 앱을 APK로 내 보냅니다.

3 단계 :

USB 케이블 또는 USB 스틱을 통해 Apk 파일을 휴대폰에 저장합니다.

4 단계 :

파일 관리자를 사용하여 앱을 설치합니다. 예 : https://play.google.com/store/apps/details?id=com.rhmsoft.fm

5 단계 :

앱을 실행하고 페이스 북으로 로그인 해보세요. 대화 상자가 열리고 다음과 같은 메시지가 표시됩니다. "페이스 북 개발자 콘솔에서 키를 찾을 수 없습니다.

6 단계 :

열쇠를 적어 두십시오.

7 단계 :

페이스 북 개발자 콘솔에 넣고 저장하세요. 이제 끝났습니다. 이전에 사용한 키 저장소로 게시 된 앱을 다운로드 한 사람은 누구나 facebook에 로그인 할 수 있습니다.

즐겨


  1. 키 해시 값을 확인하십시오.
  2. 휴대폰에서 Facebook 애플리케이션을 제거합니다.
  3. 그런 다음 SDK를 사용하여 다시 시도하십시오.

이것은 내 문제를 해결했습니다.


미친 것처럼 보이지만 작동합니다.

개인 페이스 북 계정이이 앱을 가지고 있고이 계정의 해시 키가 비교할 수 없기 때문에 정말 문제가됩니다.

그러나 실제 사용자에게는이 오류가 발생하지 않았습니다. 하지만 잘 모르겠어요

결국 다음 단계를 따르십시오.

  1. 로그인하려는 개인 페이스 북 계정으로 이동합니다.
  2. 그런 다음 앱 디렉토리에서 더보기를 클릭합니다.

여기에 이미지 설명 입력

  1. 설정 클릭

여기에 이미지 설명 입력

그리고 십자가를 클릭하십시오

여기에 이미지 설명 입력

이제 페이스 북으로 로그인 할 수 있습니다. 그러나 다음에 로그 아웃하고 다시 로그인을 시도하면 같은 문제에 직면했습니다 ...

또한 이상합니다 ...

그러나 나는 페이스 북이 이것에 대해 모른다고 믿지 않습니다 ...


--- 2019 ----- 이것이 제가이 문제를 해결 한 방법입니다.

  1. 오른쪽 패널의 Android 스튜디오에서 SHA1Gradle>App>android>signingReport 복사
  2. http://tomeko.net/online_tools/hex_to_base64.php열어 SHA1 값을 base64로 변환합니다.

이것은 Facebook에서 생성 된 해시 "******************** ="를 얻고 키 해시를 facebook 앱에 복사해야하는 것입니다.


Using Debug key store including android's debug.keystore present in .android folder was generating a strange problem; the log-in using facebook login button on android app would happen perfectly as desired for the first time. But when ever I Logged out and tried logging in, it would throw up an error saying: This app has no android key hashes configured. Please go to http:// ....

Creating a Keystore using keytool command(keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000) and putting this keystore in my projects topmost parent folder and making a following entry in projects build.gradle file solved the issue:

 signingConfigs {
        release {
            storeFile file("my-release-key.keystore")
            storePassword "passpass"
            keyAlias "alias_name"
            keyPassword "passpass"
        }    }

Please note that you always use the following method inside onCreate() of your android activity to get the key hash value(to register in developer.facebook.com site of your app) instead of using command line to generate hash value as command line in some cased may out put a wrong key hash:

    public  void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
                    PackageManager.GET_SIGNATURES);
            for (android.content.pm.Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());

                 String sign=Base64.encodeToString(md.digest(), Base64.DEFAULT);
                Log.e("KeyHash:", sign);
                //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
            }
            Log.d("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
        }
    }

I got the same problem. I found that I used wrong hashkey. keytool printed wrong hashkey because I run command with wrong alias.
Please check your command again.It will resolve your issue

keytool -exportcert -alias "test fb sdk" -storepass android -keypass android -keystore "C:\keystore.keystore" | openssl sha1 -binary | openssl base64

While generating release Hash key, Note this

When generating the hash key for production you need to use openssl-0.9.8e_X64.zip on windows, you cannot use openssl-0.9.8k_X64.zip

The versions produce different hash keys, for some reason 9.8k does not work correctly... 9.8e does.

OR

Use this below flow

This is how i solved this problem Download your APK to your PC in java jdk\bin folder in my case C:\Program Files\Java\jdk1.7.0_121\bin go to java jdk\bin folder and run cmd then copy the following command in your cmd

keytool -list -printcert -jarfile yourapkname.apk

Copy the SHA1 value to your clip board like this CD:A1:EA:A3:5C:5C:68:FB:FA:0A:6B:E5:5A:72:64:DD:26:8D:44:84 and open http://tomeko.net/online_tools/hex_to_base64.php to convert your SHA1 value to base64.


I got simular problem. After signing and publishing my app to the google PlayStore it seems the Hash has changed. I added the new Hash (as mentioned) in the Facebook messaged to the Key Hashes in my app on developers.facebook.com/app//settings. Now it works again.


What I found was that my SHA-1 that was used to sign the app to be uploaded to the Google Playstore was not correct. I realized that my app was being signed by the Google Play Store with a different token. I followed these steps:

  1. Go to Google Play Console
  2. Click Release Management
  3. Click App Signing
  4. Convert App-Signing Certificate SHA-1 to Base64 (this will be different than your current upload certificate)
  5. Enter Base64 converted SHA-1 into my Facebook Developer dashboard settings

    I am now able to log into my app when the Facebook is downloaded on and Android device.


My problem is possibly due to the hash got wrongly generated by the openssl itself, if anyone is facing similar problem using the method provided by the facebook android guide itself.

One way to deal with this is :

  1. Get your sha1 using this tool :

keytool -exportcert -keystore path-to-debug-or-production-keystore -list -v

  1. convert it to base64 using this tool

http://tomeko.net/online_tools/hex_to_base64.php

신용 :

https://github.com/facebook/react-native-fbsdk/issues/424#issuecomment-469047955


잘못된 암호를 사용하고있을 수 있습니다. 디버그 키 저장소의 기본 암호는 android입니다.


"앱에 대한 단일 사인온 활성화"가 한 번만 작동하는 이유입니다. developer.facebook으로 이동하여 settings.it를 확인하십시오.


google-services.json을 확인하십시오. 다른 것일 수도 있습니다. 최신 google-services.json을 다운로드 한 다음 앱을 실행합니다. 도움이 되었기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/20301025/facebook-key-hash-does-not-match-any-stored-key-hashes

반응형