Ta aplikacja nie ma skonfigurowanych skrótów klucza Androida. - Zaloguj się za pomocą Facebook SDK

81

Mam problem z zalogowaniem się na konto facebook w mojej aplikacji. Czytałem na Facebooku Doc. I zrobiłem wszystko jako Facebook Doc.

Najpierw zaloguj się z kontem na Facebooku w aplikacji - POWIODŁO SIĘ ! a następnie wyloguj się z aplikacji. Chcę zalogować się ponownie na moje konto na Facebooku. Ale nie działa !! I wziąłem ten Excepiton! Proszę pomóż mi !

Wyjątek: ta aplikacja nie ma skonfigurowanych skrótów kluczy Androida.Skonfiguruj skróty kluczy aplikacji na http: developers.facebook.com/apps/ „APP ID”

Wreszcie; Kiedyś byłam częścią kodu 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) {
}

Rozwiązałem problem. Powinienem był zrobić ustawienie na Facebooku. Kroki :

  1. Wejdź na stronę programisty na Facebooku: https://developers.facebook.com/
  2. Otwórz karty aplikacji, a następnie kliknij opcję Ustawienie

  3. Wklej wygenerowany hashkey w polu HashKey = Jeśli jeszcze go nie masz, pobierz część kodu z hash klucza

  4. A niż Single Sign On będzie „Yes”: Single Sign On: Włącz to ustawienie.

Chciałem podzielić się moim postanowieniem. Może ktoś potrzebuje tego rozwiązania. Powodzenia !

Tarık Yurtlu
źródło
1
Dzięki - pomogliście mi i miałem ten sam problem +1
Simon
Facebook zapewnia teraz bardzo dobre szybkie wyjaśnienie, jak generować skróty, po kliknięciu przycisku ustawień i dodaniu nowej platformy: Dla Mac: keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64Dla Windows:keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64
FilipR
Jak rozwiązałeś ten problem?
Andrei
2
Zamiast tego powinieneś zamieścić swoje rozwiązanie jako odpowiedź i oznaczyć je jako odpowiedź. To przestanie pokazywać to pytanie jako bez odpowiedzi.
Sufian

Odpowiedzi:

15

Nie musisz generować klucza skrótu. Gdy spróbujesz uzyskać dostęp do Facebooka ze swojej aplikacji, zostanie wyświetlony komunikat o błędzie informujący, że „[Klucz skrótu]” nie jest zarejestrowany ani skonfigurowany. Po prostu skopiuj ten klucz i przejdź do developer.facebook.com, gdzie zarejestrowałeś swoją aplikację do weryfikacji na Facebooku i umieść ją pod hasłami kluczy.

Pamiętaj: dla każdego urządzenia klucz skrótu może być inny. Musisz go świeżo załączyć.

Domyślnie ten klucz powinien: 2jmj7l5rSw0yVb/vlWAYkK/YBwk=

Przede wszystkim musisz podać Facebookowi szczegóły swojej aplikacji, wraz ze zrzutami ekranu pokazującymi, gdzie korzystasz z funkcji Facebooka i powody, dla których używasz. Muszą to zweryfikować.

Nielarshi
źródło
Dzięki Nielarshi za twoją odpowiedź. Ale zdecydowałem się na inny sposób.
Tarık Yurtlu,
2
@ TarıkYurtlu Co to jest? Zarejestrowałem klucz skrótu, ale nie działa. Jeśli odinstaluję aplikację Facebook, to zadziała. Czy powinienem zarejestrować wniosek o wydanie, czy możemy to zrobić dla rozwoju?
Amt87
4
Stary wątek, ale ... Czy klucz nie jest inny dla każdej „podpisanej wersji apk”, a nie dla każdego urządzenia? Z pewnością gdyby było do każdego urządzenia, nikt nie byłby w stanie z niego korzystać. Wskazówka dla innych: klucz skrótu między przesyłaną podpisaną wersją a tą, której używasz podczas tworzenia, jest inny. Chociaż możesz dodać wiele kluczy hash na Facebooku, więc nie powinno być problemu. W momencie użycia innego klucza podpisu skrót się zmieni.
renevdkooi
10

Aby wygenerować skrót klucza wydania, uruchom następujące polecenie na komputerze Mac lub Windows, zastępując alias klucza wydania i ścieżkę do magazynu kluczy. W systemie OS X uruchom:

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

W systemie Windows użyj:

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


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

Evan Lévesque
źródło
2

Jeśli nie opublikowałeś swojej aplikacji i chcesz po prostu użyć skrótu wersji debugowania, możesz go pobrać ze swojego magazynu kluczy debugowania za pomocą tego polecenia:

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

Więcej na ten powiązany post SO

kip2
źródło
1

Jest łatwy sposób na zdobycie klucza Hash.

Po prostu umieść w swoim głównym pliku .kt, w metodzie onCreate, następujące wiersze:

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

Następnie skopiuj wynik na stronę programistów Facebooka. Czasami wynik nie ma symbolu równości (=) na końcu wygenerowanego ciągu. Jeśli tak, dodaj go ręcznie.

Robert Pal
źródło
1
# Get all Hash Expo  
expo fetch:android:hashes
Joao Paulo Pinheiro
źródło