Soru App Facebook girişi için yanlış yapılandırılmıştır: Android Facebook entegrasyonu sorunu


Uygulamamı Facebook ile bütünleştirdim ve bunun için Facebook’u kullanıyorum. Grafik API'sı. Profil ve arkadaş bilgileri alıyorum. Cihazımda gayet iyi çalışıyor. Android 2.3 (Gingerbread), fakat son zamanlarda müşterim Facebook üzerinden uygulamaya geçmeye çalışırken bir sorunla karşılaştı. O sahip Android 4.0 Onun cihazında (Ice Cream Sandwich). Facebook giriş ekranına götüren uygulamadaki bir düğmeyi tıkladığında, giriş yaptıktan sonra bir mesaj alır:

Uygulamam Facebook girişi için yanlış yapılandırıldı. Facebook'a bağlanmadan uygulamaya geri dönmek için Tamam'a basın.

Facebook error message

Android sürümü ya da ne ile ilgili sorun olup olmadığını anlamıyorum.

Bu sorunu nasıl giderebilirim?


76
2017-09-12 06:46


Menşei


SSO ile ilgili olmadığından emin misiniz? FB uygulaması yüklü değilken, aynı zamanda iyi çalıştı aynı sorunu vardı, ancak FB uygulaması yüklendiğinde, yukarıdaki hatayı aldım. - Christer Nordvik
@ AB1209, kabul edilen cevap, sorunuzun yanlış cevabıdır. Cevabım için lütfen aşağıya bakın ve kabul edilen cevabı çözümünüz olarak kullanmayın. - Jesse Chen
@JesseChen, Rehberliğiniz için çok teşekkür ederim. - AB1209
@ AB1209 hii, eğer bir vücut yanlış bir şekilde yapabileceklerini bilmek isterse, cevabı kabul etmeyebilirsin ... - BBdev
Gerçekten de bu hata Facebook'un kendi SDK örneklerinde de oluyor! Git rakamı. - Igor Ganapolsky


Cevaplar:


Facebook'ta çalışıyorum ve bu ele alınması gereken önemli bir sorundur. Bu sorunun diğer cevabı, SSO'nun devre dışı bırakılmasının çok kötü olduğunu ve Uygulamanızı, kullanıcının Facebook kimlik bilgilerini çalabilecek kötü amaçlı uygulamalara açacak.

Hack, SSO olmadan Facebook'a bir WebView iletişimini başlatır ve kullanıcı, oturum açma bilgilerini bu iletişim kutusuna yazmalıdır. Kötü amaçlı uygulamalar daha sonra bu bilgileri kolayca çalabilir. Uygulamanızın güvenli olduğundan emin olmak ve kullanıcılarınızın hassas verilerini korumak için Facebook SSO'yu doğru bir şekilde uygulamanız önerilir.

Bu hata mesajını eklemeden önce, iletişim kutusu uyarı vermeden otomatik olarak kapanır ve sessizce başarısız olur. Facebook uygulama kontrol panelinizde uygulama yapılandırmanızda bir sorun olduğunu görsel olarak göstermek için bu hata mesajını ekledik. Android için, eğer LogCat"Tamam" a bastıktan sonra, kimlik doğrulamanın başarısız olmasına neden olan şeyin daha teknik bir tanımını gösteren bir hata mesajı göreceksiniz.

Örneğin, Hackbook örneğimizi kullanırsanız ve kaynakta kendi APP_ID'nizi sağlamazsanız ve hash anahtarınızı gösterge tablosuna eklemediyseniz, bu hatayı, SSO iletişim kutusunda "Tamam" a bastıktan sonra LogCat'te görürsünüz. Util.ENABLE_LOG, true olarak ayarlandı):

D / Facebook-yetkilendirmesi (24739): Giriş yapılamadı: invalid_key: Android anahtarı eşleşmiyor. "Uk3udeH7vrOGNFH2FJjdJbdWJWI" anahtarınız, uygulama ayarlarınızda belirtilen izin verilen anahtarlarla eşleşmiyor. Adresindeki uygulama ayarlarınızı kontrol edin. http://www.facebook.com/developers

Size yardımcı olması için görsel hata mesajını ekledik. Bu, teoride, önceki uygulamaları bozmaz başlamak için doğru şekilde uygulandıysa. Bu hata mesajını görüyorsanız, uygulama ayarlarınızı doğru bir şekilde yapılandırmadığınız anlamına gelir. kontrol paneliniz.
Android Sınıf / Paket adınızı, Android karma anahtarlarınızı vb. İşaretleyin. Her şeyi doğru bir şekilde yaparsanız bu mesajı görmezsiniz.

Özetle, bu hata iletisini alıyorsunuz, çünkü uygulama yapılandırmanızda bir sorun var, örneğin, kontrol panelinizdeki Android karma tuşları arasında bir uyumsuzluk var. Facebook bu hata mesajını eklemeden önce, iletişim kutusu açılır ve otomatik olarak kapanır ve başarısız olur. Bunu düzeltmek için, herhangi bir hata mesajı için LogCat'inizi kontrol edin ve her şeyin doğru şekilde uygulandığından emin olun. Okuyabilirsin belgelerimiz her şeyin doğru olduğundan emin olmak için. Bu soru için kabul edilen cevabı kullanmayın.

Ayrıca takip edebilirsiniz harici hata raporu Bir Facebook geliştiricisi daha fazla güncelleme için rapor etti.


90
2017-09-15 02:01



Merhaba, bu Facebook'tan Shireesh. Jesse'ye burada katılıyorum. Lütfen kabul edilen cevabı burada takip etmeyin. En kesinlikle uygulamanızla ilgili bir ayar sorunu. Hatayı günlüğe kaydet ve ayrıntıları görün. Hem Android hem de iOS'taki sorunu düzeltmenize yardımcı olacak. - Shireesh Asthana
FWIW Ben de bu sorunu vardı; Tüm karmaları kaldırarak ve dev ve üretim anahtarlarımı yeniden oluşturup bunları fb dev portalına ekleyerek çözdüm. Bu cevap için +1 - Nirvana Tikku
Sorun çözüldü. Girdiğin için. Android geliştirme konusunda yeniyim. Benim tarafımdan sağlanan çözüm, sorunu "çözüyor" ama başka problemler de sunuyor. - rmcc
Durumumda ios uygulaması ad alanı yanlıştı. - Almas Adilbek
Bu adam ne hakkında konuştuğunu biliyor. Ben aynı sorunu vardı ve açık kodun kötü bir sürümü nedeniyle belirteç / anahtar / herneyse yanlış olduğunu buldum. bir kez düzeltildi, bu mesaj gitti. Teşekkürler Jesse! - Evan R.


Bunu şöyle ayarlamaya çalışın:

İlk indirme OpenSSL (Eğer bir 64-bit makineniz varsa indirmelisiniz openssl-0.9.8e X64, son sürümü değil, openssl-0.9.8k X64, çünkü çıktı geçerli olmayacaktır). Dosyalarınızı ayıklayın, klasörü oluşturun opensslÖrneğin, C: / ve orada dosyaları kopyalayın.

Keytoo yolunu bul. Benimki C: \ Program Files \ Java \ jdk1.7.0_05 \ bin.

Yolunu bul debug.keystore. Eclipse'de açarsanız, yolun ne olduğunu görebilirsiniz. pencere -> Tercihler -> Android -> İnşa etmek, ve göreceksin Varsayılan Debug anahtar deposu:-ve yol.

Yolunu bul openssl. Benimki C: \ openssl8e \ bin /.

Cmd'yi aç ve şunu yazın:

"C: \ Program Files \ Java \ jdk1.7.0_05 \ bin \ keytool" -exportcert -alias androiddebugkey -keystore "C: \ Kullanıcılar \ Kullanıcı.android \ debug.keystore" Üste | "C: \ openssl8e \ bin \ openssl" sha1 -binary | "C: \ openssl8e \ bin \ openssl" base64

Ve sonra basın Girmek.

Şifre ekle: android

Hash anahtarınızı alacaksınız debug.keystore.

İmzalı bir dışa aktardığınızda APKve uygulama için bir anahtar deposu yaratırsınız, sadece app için takma adınızla cmd debugkeystore diğer adlarını değiştirin, app için yeni oluşturduğunuz anahtar deposunun yolu ile keystore yolu ve sizin için parola ekleyin app.keystoreve imzalı uygulamanız için yeni bir hash anahtarı alacaksınız.


15
2017-09-23 14:24



Benim için çalışan tek çözüm ... openssl-0.9.8e X64 önemli. - Baseer
Bu problemi yaşadım, k versiyonu geçersiz bir karma üretti. Bunu bulduğun için teşekkürler! - SimpsOff
Seni seviyorum, bu sadece son olarak yardımcı oldu. - Prateek


Jesse Chen'in cevabı iyi. Facebook'lar SDK iyi çalışıyor, kırma.

Yine bu problemle karşılaştım ve Facebook SDK belgelerinin düzeltildiğini ve şimdi çok iyi olduğunu öğrendim. Şimdi, hash anahtarlarının nasıl hata ayıklanacağı ve bırakılacağı konusunda rehberlik ediyor; Sadece dediği gibi yap.

Aşağıda eski hikayem. Kaybolmak için iki hash tuşu, biri eski için imzalanmış, bir uygulama için bir tane ayarlayabilirsiniz. Oyun mağazası.


Bu problemi çözdüm oldu Benim durumumda Facebook SDK'nın belgelerinde. Hata ayıklama anahtarının kullanımını ve Facebook'un uygulama yapılandırmasına koymamızı sağladı. Hash bu yolla yönlendirilir:

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

Bu, uygulamadan kaynaklanıyorsanız veya uygulamayı çalıştırdığınızda iyi çalışır. tutulma.

Ancak, uygulamanızı Andoid Play'e yayınlarsanız, imzalı .apk dosyasını dışa aktarmak için kendi yayıncı anahtarınızı kullanmanız gerekir. Bu .apk ile, Facebook uygulama konsolundaki karma artık geçerli değil! Geliştirici anahtarı için böyle bir karma almanız gerekir:

keytool -exportcert -alias <developer alias> -keystore ~/.android/<developer keystore> | openssl sha1 -binary | openssl base64

Ve yayınlanan uygulamanız için Facebook uygulama konsolunda Android Key Hash’e koyun. Bundan sonra, SSO imzalı .apk dosyanız için tekrar çalışır.


12
2017-09-24 20:09





Toplayabildiğim kadarıyla bir Facebook sorunu ve bildirildi. Ama sorun devam ediyor.

Bunun bir yolu (2.3.3 üzerinde test edilmiştir) Facebook SDK'sında çalışmak, 2'ye ulaşmak yetki vermek yöntemleri ve değiştirmek DEFAULT_AUTH_ACTIVITY_CODE için FORCE_DIALOG_AUTH. Bu, Tek Oturum Açma özelliğini devre dışı bırakır.

Tercihiniz varsa

public void authorize(Activity activity, String[] permissions,
            int activityCode, final DialogListener listener) 

ve devre dışı bırak startSingleSignOn Bölüm. Bunun nedeni, Facebook'un problemi çözmesidir, çünkü sadece eski sabitleri geri almak zorundasınız.

DÜZENLE

Bu çözüm güvenlik sorunlarını artırıyor. Jesse Chen'in cevabını kontrol et.


8
2017-09-12 16:34



Bu teşekkür çalışır.Ama ben yakında Facebook sorunu çözecek umuyoruz. - AB1209
Bende umut ediyorum. SSO güzel bir işlevsellik sağlar ama kırılır ... - rmcc
Herkese merhaba, ben Facebook'ta çalışıyorum ve bu hack'i kullanmamanızı tavsiye etmiyoruz. Bu bir güvenlik kaygısıdır ve kullanıcınızın Facebook kimlik bilgilerini tehlikeye atabilir. Aşağıda daha kapsamlı bir cevap yayınladım. - Jesse Chen


Aynı problemle karşılaştım, 24 saat geçirdikten sonra çok fazla arama yaptığım problemi çözmek için bu yöntemi kullanıyoruz.

  1. Xcode projenizin geçerli paket tanımlayıcısını kontrol edin örneğin: com.yourcompanyname.yourappname

  2. Facebook'ta uygulama oluşturmak için aynı com.yourcompanyname.yourappname paket tanımlayıcısını kullanın eke bakın.

enter image description here


5
2017-12-21 05:02



Bu iOS değil, ANdroid - jesses.co.tt


Bu problemi sadece birkaç dakika önce kendim 4.0.4 üzerinde yaptım ve kendimi çözmüş görünüyor.


3
2017-09-12 13:03



Tam olarak aynı burada. Bence Facebook bir hıçkırıklık geçiriyordu. - Sander van't Veer
Yabancı burada - benim cihazlar biri bu sorunu gösterir. Diğerleri de iyi. Kod% 100 aynıdır. IPO şeyleri yokuş aşağı gittiğinden beri :) - Vaiden
Bende aynı problem var. ne zaman Facebook Uygulaması. gösterilen bu mesajı yüklüyor. - eyal


Geç olmasına rağmen hala yararlı: *İşte yapmak için yürek yoludur (hata ayıklama anahtarı için, serbest bırakma için buna göre değiştirin):*

keytool -exportcert -alias androiddebugkey -keystore "C:\Users\<User>\.android\debug.keystore" > <Drive letter>:\debug.txt
openssl sha1 -binary "<Drive letter>:\debug.txt" > "<Drive letter>:\debug_sha.txt"
openssl base64 -in "<Drive letter>:\debug_sha.txt" > "<Drive letter>:\debug_base64.txt"

Hash son oluşturulan dosyada: debug_base64.txt .... açın ve karma kopyalayın.

"" Adresini ve kullanıcı adınızı ve seçtiğiniz harfin harfini değiştirmeyi unutmayın.


3
2018-01-24 04:05





Anahtar karma oluşturduğunuzda, sonuçta "=" eşitlik işareti olan bir şeyle sonuçlanabilirsiniz. ga0RGNYHvNM5d0SLGQfpQWAPGJ8 =. Facebook anahtar karenin bir parçası olarak eşitlik işaretini memnuniyetle kabul ederken, işe yaraması için onu kaldırmanız gerekir.

Ayrıca, kabul edilen cevabı Android Facebook SDK 3.0, oturum açarken "remote_app_id depolanan kimliği eşleşmiyor" verir: hata ayıklama anahtar deposu için anahtar sağlama alırken, "android" şifresini kullanın. Aksi halde anahtar karması yanlış olur ve soruda belirtilen hatayı alırsınız (hoş ol ve size yardım ederse cevabı oylayarak oylayın.)


2
2017-12-27 10:48





OWN anahtar deposuyla imzalanmış uygulamalarla ilgili olarak: Bu sorunu çözmek için birkaç saat geçirdikten sonra sonunda anladım ve hala acı çekenlere bir cevap vermek istiyorum:

Adımlarım: Uygulamamı kendi anahtar deposu dosyanızla (debug.keystore) tutturma yoluyla imzaladım. Komut satırı ve bilinen komutlar aracılığıyla (keytool -exportcert -alias -keystore ~ ​​/ .android / | openssl sha1 -binary | openssl base64) Anahtar karesini başarılı bir şekilde aldım. Dev kontrol panelindeki anahtar karesi yapıştırıldığında, birkaç dakika bekledik -> Yine de aynı HATA (yukarıdaki soruda belirtildiği gibi). Ben birkaç jdks, vb birkaç farklı keytool denedim ... hiçbir şey değişti.

Çözüm: Manşette debuggable'ı açtım, facebook sdk'de hata ayıklamayı açtım. Sonra kendi anahtar depomuzla apk imzaladım ve gerçek cihazda yükledim. Cihazı USB üzerinden bağladım ve cihazdaki logcat'i görmek için DDMS perspektifini açtım.
Uygulamamı başlattım ve hata mesajının oluşmasına izin verdim. Keytool tarafından oluşturulan anahtardan tamamen farklı bir anahtar yazdırır. Bu anahtarı logcat'ten aldım, dev panoya yapıştırdım ve voila -> HER ŞEY İŞLER

Bunun neden olduğunu veya yanlış anahtara neyin neden olduğunu hala bilmiyorum ama bu şekilde benim için çalışıyor.


1
2017-10-05 00:15





Ubuntu gibi Debian sisteminde keytool arasında java dizinde bulundu /usr/lib/jvm/jdk*.*.*/bin/keytool ve bunun gibi üret

/usr/lib/jvm/jdk1.7.0/bin/keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64

Bu şekilde, uygulamanızın facebook karması altına alınabilecek otantik bir hash anahtarı elde edersiniz.


1
2017-12-16 09:08





Genellikle bu sorun iki kontrolle çözülebilir:

  • facebook konsolunda bayrak yayınlamak facebook konfigürasyonunu canlı yayınlamak için
  • API anahtarı yanlış eşleşmeleri

1
2018-01-13 14:52