이 앱에는 구성된 Android 키 해시가 없습니다. -Facebook SDK로 로그인


81

내 응용 프로그램에서 facebook acount로 로그인하는 데 문제가 있습니다. 나는 Facebook Doc을 읽었습니다. 그리고 저는 모든 단계를 Facebook Doc으로했습니다.

첫 번째 앱에서 페이스 북 계정으로 로그인- 성공 ! 그리고 응용 프로그램에서 로그 아웃하는 것보다. 내 페이스 북 계정으로 다시 로그인하고 싶습니다 . 하지만 작동하지 않습니다 ! 그리고 나는이 Excepiton을 가져 갔다! 제발 도와주세요!

예외 :이 앱에는 구성된 Android 키 해시가 없습니다. http : developers.facebook.com/apps/ "APP ID"에서 앱 키 해시를 구성하세요.

Finaly; HashKey Genarate 코드의 일부를 사용했습니다.

 try {
        PackageInfo info =     getPackageManager().getPackageInfo("MY PACKAGE NAME",     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("MY KEY HASH:", sign);
          //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
        }
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}

문제를 해결했습니다. 페이스 북에서 설정 했어야 했어. 단계 :

  1. 페이스 북 개발자 페이지로 이동 : https://developers.facebook.com/
  2. 앱 탭을 열고 설정을 클릭합니다.

  3. HashKey 필드에 생성 해시 키 붙여 넣기 = 아직없는 경우 코드의 키 해시 부분을 가져옵니다.

  4. 그리고보다 단일 로그인에 "예"입니다 : 단일 로그인이에 :이 설정을 사용합니다.

결심을 나누고 싶었습니다. 누군가이 솔루션이 필요할 수 있습니다. 행운을 빕니다 !


1
감사합니다-저를 도왔고 저도 같은 문제를 경험했습니다 +1
Simon

Facebook은 이제 설정 버튼을 클릭하고 새 플랫폼을 추가 한 후 해시를 생성하는 방법에 대한 아주 좋은 빠른 시작 설명을 제공합니다. Mac의 경우 : keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64Windows의 경우 :keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
FilipR

이 문제를 어떻게 해결 했습니까?
안드레이

2
대신 솔루션을 답변으로 게시하고 답변으로 표시해야합니다. 그러면이 질문이 답변되지 않은 것으로 표시되지 않습니다.
Sufian 2015 년

답변:


15

해시 키를 생성 할 필요가 없습니다. 앱에서 페이스 북에 접속을 시도하면 "[해시 키]"가 등록 또는 구성되지 않았다는 오류 메시지가 표시됩니다. 해당 키를 복사하고 Facebook 인증을 위해 앱을 등록한 developer.facebook.com으로 이동하고 키 해시 아래에 포함하면됩니다.

알아두기 : 모든 장치에 대해 해시 키가 다를 수 있습니다. 새로 포함해야합니다.

기본적으로이 키는 다음을 수행해야합니다. 2jmj7l5rSw0yVb / vlWAYkK / YBwk =

또한, 무엇보다도 먼저 Facebook 기능을 사용하는 위치 및 사용 이유에 대한 스크린 샷과 함께 앱 세부 정보를 Facebook에 제공해야합니다. 그들은 그것을 확인해야합니다.


귀하의 답변에 대해 Nielarshi에게 감사드립니다. 하지만 다른 방법으로 결심했습니다.
Tarık Yurtlu 2014

2
@ TarıkYurtlu 뭐야? 해시 키를 등록했지만 작동하지 않습니다. Facebook 앱을 제거하면 작동합니다. 출시를 위해 애플리케이션을 등록해야합니까, 아니면 개발을 위해 할 수 있습니까?
Amt87

4
이전 스레드이지만 ... 각 장치가 아닌 각 "서명 된 apk 버전"마다 키가 다르지 않습니까? 확실히, 그것이 각 장치에 대한 것이었다면 아무도 그것을 사용할 수 없을 것입니다. 힌트 : 업로드하는 서명 된 버전과 개발할 때 사용하는 버전 사이의 해시 키가 다릅니다. Facebook에 여러 해시 키를 추가 할 수 있지만 문제가되지 않습니다. 다른 서명 키를 사용하는 순간 해시가 변경됩니다.
renevdkooi 2015 년

10

릴리스 키의 해시를 생성하려면 Mac 또는 Windows에서 릴리스 키 별칭과 키 저장소 경로를 대체하여 다음 명령을 실행합니다. OS X에서 다음을 실행합니다.

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64

Windows에서는 다음을 사용하십시오.

keytool -exportcert -alias <RELEASE_KEY_ALIAS> -keystore <RELEASE_KEY_PATH> | openssl sha1 -binary | openssl base64


참조 : https://developers.facebook.com/docs/android/getting-started/#create_hash


2

앱을 게시하지 않았고 디버그 버전 해시를 사용하려는 경우 다음 명령을 사용하여 디버그 키 저장소에서 가져올 수 있습니다.

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

이 관련 SO 게시물대한 추가 정보


1

해시 키를 얻는 쉬운 방법이 있습니다.

기본 .kt 파일의 onCreate 메소드에 다음 행을 넣으십시오.

FacebookSdk.sdkInitialize(this)
println("Facebook hash key: ${FacebookSdk.getApplicationSignature(this)}")

그런 다음 결과를 Facebook 개발자 웹 사이트에 복사하십시오. 결과의 생성 된 문자열 끝에 등호 (=)가없는 경우가 있습니다. 그렇다면 수동으로 추가하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.