सवाल फेसबुक लॉगिन के लिए ऐप गलत कॉन्फ़िगर किया गया है: एंड्रॉइड फेसबुक एकीकरण मुद्दा


मैंने फेसबुक के साथ अपना आवेदन एकीकृत किया है, और इसके लिए मैं फेसबुक का उपयोग कर रहा हूं ग्राफ एपीआई। मैं प्रोफाइल और दोस्तों की जानकारी पुनर्प्राप्त कर रहा हूं। यह मेरे डिवाइस पर ठीक काम कर रहा है Android 2.3 (जिंजरब्रेड), लेकिन हाल ही में मेरे क्लाइंट को एक समस्या का सामना करना पड़ा है जबकि वह मेरे ऐप के माध्यम से फेसबुक से कनेक्ट करने का प्रयास कर रहा है। वह रखता है Android 4.0 (आइस क्रीम सैंडविच) अपने डिवाइस पर। जब वह ऐप पर एक बटन क्लिक करता है जो उसे फेसबुक लॉगिन स्क्रीन पर ले जाता है, तो लॉगिन के बाद उसे एक संदेश मिलता है:

फेसबुक ऐप के लिए मेरा ऐप गलत कॉन्फ़िगर किया गया है। फेसबुक से कनेक्ट किए बिना एप्लिकेशन पर वापस जाने के लिए ठीक है दबाएं।

Facebook error message

मुझे यह नहीं मिल रहा है कि यह समस्या क्या है या नहीं, यह एंड्रॉइड संस्करण से संबंधित है या नहीं।

मैं इस समस्या को कैसे ठीक करुं?


76
2017-09-12 06:46


मूल


क्या आप वाकई एसएसओ से संबंधित नहीं हैं? मेरे पास एक ही समस्या थी जहां एफबी ऐप स्थापित नहीं किया गया था, लेकिन जब एफबी ऐप स्थापित किया गया था तो मुझे उपरोक्त त्रुटि मिली। - Christer Nordvik
@ एबी 120 9, स्वीकृत उत्तर आपके प्रश्न का गलत जवाब है। कृपया मेरे उत्तर के लिए नीचे देखें, और स्वीकृत उत्तर का उपयोग अपने समाधान के रूप में न करें। - Jesse Chen
@ जेसे चेन, आपके मार्गदर्शन के लिए बहुत बहुत धन्यवाद। - AB1209
@ एबी 120 9 एचआईआई अगर आप कुछ जानना चाहते हैं कि वे गलत तरीके से ऐसा कर सकते हैं तो आप जवाब को अस्वीकार कर सकते हैं ... - BBdev
वास्तव में, यह त्रुटि फेसबुक के अपने एसडीके नमूने में भी होती है! जाओ पता लगाओ। - Igor Ganapolsky


जवाब:


मैं फेसबुक पर काम करता हूं, और यह एक महत्वपूर्ण मुद्दा है जिसे संबोधित करने की जरूरत है। इस प्रश्न के लिए अन्य उत्तर से पता चलता है कि एसएसओ को अक्षम करना बहुत बुरा है और आपके ऐप को दुर्भावनापूर्ण ऐप्स पर खुल जाएगा जो आपके उपयोगकर्ता के फेसबुक प्रमाण-पत्र चुरा सकता है।

हैक ने एसएसओ के बिना फेसबुक पर एक वेबव्यू संवाद लॉन्च किया है, और उपयोगकर्ता को उस संवाद में अपने लॉगिन प्रमाण-पत्र टाइप करना होगा। दुर्भावनापूर्ण ऐप्स तब इस जानकारी को आसानी से चुरा सकते हैं। यह सुनिश्चित करने के लिए हमेशा आपका एसएसओ सही ढंग से लागू करने की सलाह दी जाती है कि आपका ऐप सुरक्षित है और आपके उपयोगकर्ता के संवेदनशील डेटा को सुरक्षित रखता है।

इस त्रुटि संदेश को जोड़ने से पहले, संवाद स्वचालित रूप से चेतावनी के बिना बंद हो जाएगा और चुपचाप विफल हो जाएगा। हमने इस त्रुटि संदेश को दृष्टि से प्रदर्शित करने के लिए जोड़ा है कि आपके ऐप कॉन्फ़िगरेशन में आपके फेसबुक ऐप डैशबोर्ड में कोई समस्या है। एंड्रॉइड के लिए, यदि आप अपनी जांच करते हैं LogCat, आप देखेंगे कि "ठीक है" दबाकर, एक त्रुटि संदेश होना चाहिए जो प्रमाणीकरण विफल होने के कारण होने का एक और तकनीकी विवरण प्रदर्शित करेगा।

उदाहरण के लिए, यदि आप हमारे हैकबुक उदाहरण का उपयोग करते हैं और स्रोत में अपना स्वयं का APP_ID नहीं देते हैं और डैशबोर्ड पर अपनी हैश कुंजी नहीं जोड़ते हैं, तो आपको मूल एसएसओ संवाद में "ठीक है" दबाकर लॉगकैट में यह त्रुटि दिखाई देगी (यदि Util.ENABLE_LOG सत्य पर सेट है):

डी / फेसबुक-अधिकृत (24739): लॉगिन विफल: अवैध_की: एंड्रॉइड कुंजी मेल नहीं खाता। आपकी कुंजी "uk3udeH7vrOGNFH2FJjdJbdWJWI" आपकी एप्लिकेशन सेटिंग्स में निर्दिष्ट अनुमति कुंजी से मेल नहीं खाती है। अपनी एप्लिकेशन सेटिंग्स को जांचें http://www.facebook.com/developers

हमने आपकी सहायता के लिए दृश्य त्रुटि संदेश जोड़ा है। यह, सिद्धांत रूप में, पिछले कार्यान्वयन तोड़ नहीं है अगर इसे शुरू करने के लिए सही ढंग से कार्यान्वित किया गया था। अगर आपको यह त्रुटि संदेश दिखाई देता है, तो इसका मतलब है कि आपने अपनी ऐप सेटिंग्स को सही तरीके से कॉन्फ़िगर नहीं किया है आपका डैशबोर्ड
अपने एंड्रॉइड क्लास / पैकेज का नाम दोबारा जांचें, एंड्रॉइड हैश कुंजी, इत्यादि। अगर आपने सबकुछ ठीक से किया है तो आपको यह संदेश नहीं दिखाई देगा।

संक्षेप में, आपको वह त्रुटि संदेश मिल रहा है क्योंकि आपके ऐप कॉन्फ़िगरेशन में कोई समस्या है, उदाहरण के लिए, आपके डैशबोर्ड में एंड्रॉइड हैश कुंजी के बीच एक मेल नहीं है। फेसबुक ने इस त्रुटि संदेश को जोड़ने से पहले, संवाद लॉन्च होगा, फिर स्वचालित रूप से बंद हो जाएगा और विफल हो जाएगा। इसे ठीक करने के लिए, किसी भी त्रुटि संदेशों के लिए अपनी LogCat जांचें और सुनिश्चित करें कि आपके पास सबकुछ ठीक से लागू किया गया है। आप पढ़ सकते हैं हमारे दस्तावेज यह सुनिश्चित करने के लिए कि आपके पास सब कुछ सही है। इस प्रश्न के लिए स्वीकृत उत्तर का उपयोग न करें।

आप भी इसका पालन कर सकते हैं बाहरी बग रिपोर्ट कि एक फेसबुक डेवलपर ने अधिक अपडेट के लिए रिपोर्ट की है।


90
2017-09-15 02:01



हाय, यह फेसबुक से शिरेश है। मैं यहां जेसी से सहमत हूं। कृपया यहां स्वीकृत उत्तर का पालन न करें। यह निश्चित रूप से आपके ऐप के साथ एक सेटिंग मुद्दा है। त्रुटि लॉग करें और विवरण देखें। यह एंड्रॉइड के साथ-साथ आईओएस दोनों पर इस मुद्दे को सही करने में आपकी मदद करेगा। - Shireesh Asthana
एफडब्ल्यूआईडब्ल्यू मुझे भी यह मुद्दा था; मैंने इसे सभी हैश को हटाकर और मेरे देव और उत्पादन कुंजी को फिर से बनाकर और उन्हें एफबी देव पोर्टल में जोड़कर हल किया। इस उत्तर के लिए +1 - Nirvana Tikku
समस्या का समाधान हो गया। इनपुट के लिए आप से भी ज्यादा। मैं एंड्रॉइड विकास के लिए नया हूँ। मेरे द्वारा प्रदान किया गया समाधान, समस्या हल करता है लेकिन अन्य समस्याएं प्रदान करता है। - rmcc
मेरी स्थिति में यह गलत आईओएस ऐप नेमस्पेस था। - Almas Adilbek
यह आदमी जानता है कि वह किस बारे में बात कर रहा है। मेरे पास यह वही मुद्दा था, और पाया कि ओपनएसएसएल के खराब संस्करण के कारण मेरा टोकन / कुंजी / जो भी गलत था। एक बार तय हो गया, यह संदेश चला गया। धन्यवाद जेसी! - Evan R.


इसे इस तरह सेट करने का प्रयास करें:

पहला डाउनलोड OpenSSL (यदि आपके पास 64-बिट मशीन है तो आपको डाउनलोड करना होगा openssl-0.9.8e X64, नवीनतम संस्करण नहीं, openssl-0.9.8k X64, क्योंकि आउटपुट मान्य नहीं होगा)। अपनी फाइलें निकालें, फ़ोल्डर बनाएं openssl, उदाहरण के लिए सी: / और वहां फाइलों की प्रतिलिपि बनाएँ।

कीटू के लिए अपना रास्ता खोजें। मेरा सी है: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.7.0_05 \ bin।

अपना रास्ता ढूंढें debug.keystore। यदि आप एक्लिप्स, मेनू में खुलते हैं तो आप देख सकते हैं कि पथ क्या है खिड़की -> पसंद -> एंड्रॉयड -> निर्माण, और तुम देखोगे डिफ़ॉल्ट डीबग कीस्टोर:और रास्ता।

अपना रास्ता ढूंढें openssl। मेरा सी है: \ openssl8e \ bin /।

ओपन cmd और टाइप करें:

"सी: \ प्रोग्राम फ़ाइलें \ जावा \ jdk1.7.0_05 \ bin \ keytool" -exportcert -alias androiddebugkey -keystore "सी: \ उपयोगकर्ता \ User.android \ debug.keystore" | "सी: \ openssl8e \ bin \ openssl" sha1 -binary | "सी: \ openssl8e \ bin \ openssl" base64

आनंद फिर प्रेस करें दर्ज

पासवर्ड डालें android

आपको अपनी हैश कुंजी मिल जाएगी debug.keystore

जब आप एक हस्ताक्षरित निर्यात करते हैं APK, और आप एप्लिकेशन के लिए एक कीस्टोर बनाते हैं, ऐप के लिए अपने उपनाम के साथ cmd debugkeystore उपनाम में प्रतिस्थापित करें, ऐप के लिए अपने नव निर्मित कीस्टोर के पथ के साथ कीस्टोर पथ और अपने पासवर्ड को डालें app.keystore, और आपको अपने हस्ताक्षरित ऐप के लिए एक नई हैश कुंजी मिल जाएगी।


15
2017-09-23 14:24



एक समाधान जो मेरे लिए काम करता है ... द openssl-0.9.8e X64 महत्वपूर्ण है। - Baseer
मुझे यह समस्या थी, के संस्करण ने एक अवैध हैश बनाया। यह खोजने के लिए धन्यवाद! - SimpsOff
मैं तुमसे प्यार करता हूँ यह केवल आखिरी में मदद की। - Prateek


जेसी चेन का जवाब ठीक है। फेसबुक एसडीके ठीक काम करता है, इसे तोड़ो मत।

मैं फिर से इस समस्या में भाग गया और पता चला कि फेसबुक एसडीके दस्तावेज को सही किया गया है और अब बहुत अच्छा है। अब यह हैश करना है कि कैसे हैब कुंजी को डिबग और रिलीज़ किया जा सकता है; जैसा कि यह कहता है बस करो।

नीचे मेरी पुरानी कहानी है। गायब है कि आप दो हैश कुंजी सेट कर सकते हैं, एक डिबगिंग के लिए और एक पुराने के लिए हस्ताक्षरित, जारी आवेदन के लिए प्ले स्टोर


मुझे वह समस्या मिली था फेसबुक एसडीके के दस्तावेज में मेरे मामले में। इसने हमें डीबग की हैश का उपयोग करने और इसे फेसबुक की ऐप कॉन्फ़िगरेशन में रखने के लिए निर्देशित किया। इस तरह से पाने के लिए हैश निर्देशित है:

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

यह ठीक काम करता है, जब आप डबगिंग या एप्लिकेशन चला रहे हैं ग्रहण

लेकिन, यदि आप अपना आवेदन एंडॉइड प्ले पर प्रकाशित करते हैं, तो आपको हस्ताक्षरित। एपीके फ़ाइल निर्यात करने के लिए अपनी खुद की प्रकाशक कुंजी का उपयोग करना होगा। उस .apk के साथ, फेसबुक ऐप कंसोल में हैश अब और मान्य नहीं है! आपको इस तरह डेवलपर कुंजी के लिए हैश प्राप्त करना होगा:

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

और इसे अपने प्रकाशित एप्लिकेशन के लिए फेसबुक ऐप कंसोल में एंड्रॉइड की हैश में डाल दें। उसके बाद, एसएसओ आपके हस्ताक्षरित। एपीके फ़ाइल के लिए फिर से ठीक काम करता है।


12
2017-09-24 20:09





जो मैं इकट्ठा कर सकता हूं, उससे एक फेसबुक समस्या है और इसकी सूचना मिली है। लेकिन, समस्या बनी रहती है।

इस के आसपास एक रास्ता (2.3.3 पर परीक्षण) फेसबुक एसडीके पर हैक करना है, 2 के लिए सीच को अधिकृत तरीकों और परिवर्तन DEFAULT_AUTH_ACTIVITY_CODE सेवा मेरे FORCE_DIALOG_AUTH। यह सिंगल साइन ऑन फीचर को अक्षम कर देगा।

अगर आपकी पसंद है

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

और अक्षम करें startSingleSignOn अंश। यह बेहतर नहीं है, क्योंकि आखिर में फेसबुक समस्या का समाधान करेगा, और आपको केवल पुराने स्थिरता को वापस रखना होगा।

संपादित करें

यह समाधान सुरक्षा समस्याओं को उठाता है। जेसी चेन जवाब की जांच करें।


8
2017-09-12 16:34



यह धन्यवाद काम करता है। लेकिन मुझे आशा है कि जल्द ही फेसबुक इस मुद्दे को हल करेगा। - AB1209
मैं भी आशा करता हु। एसएसओ एक अच्छी कार्यक्षमता प्रदान करता है लेकिन टूटा हुआ है ... - rmcc
हाय सब, मैं फेसबुक पर काम करता हूं और हम अनुशंसा नहीं करते कि आप इस हैक का उपयोग करें। यह एक सुरक्षा चिंता है और आपके उपयोगकर्ता के फेसबुक प्रमाण-पत्रों से समझौता कर सकता है। मैंने नीचे एक और गहन जवाब पोस्ट किया। - Jesse Chen


24 घंटों खर्च करने के बाद मुझे एक ही समस्या का सामना करना पड़ा और बहुत सी खोज हम अपनी समस्या को हल करने के लिए इस विधि का उपयोग करते हैं।

  1. अपने एक्सकोड परियोजना वर्तमान बंडल पहचानकर्ता की जांच करें उदाहरण के लिए: com.yourcompanyname.yourappname

  2. फेसबुक में एप बनाने के लिए एक ही com.yourcompanyname.yourappname बंडल पहचानकर्ता का उपयोग संलग्नक देखें।

enter image description here


5
2017-12-21 05:02



यह एनाड्रॉइड है, आईओएस नहीं - jesses.co.tt


मुझे बस कुछ ही मिनट पहले 4.0.4 पर यह समस्या थी और ऐसा लगता है कि यह स्वयं हल हो गया है।


3
2017-09-12 13:03



बिल्कुल वही। मुझे लगता है कि फेसबुक में हिचकी लग रही थी। - Sander van't Veer
यहां अजनबी - मेरे डिवाइस में से एक यह समस्या दिखाता है। ठीक है अन्य लॉग। कोड 100% समान है। जब से उनकी आईपीओ चीजें डाउनहिल चली गईं :) - Vaiden
मेरी भी यही समस्या है। जब फेसबुक ऐप। इस संदेश को दिखाया गया है। - eyal


हालांकि देर से, अभी भी उपयोगी: *यहां करने के लिए कोर्रेट तरीका है (डीबग कुंजी के लिए, रिलीज के अनुसार तदनुसार बदलें):*

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"

हैश आखिरी जेनरेट की गई फ़ाइल में है: debug_base64.txt .... इसे खोलें और हैश की प्रतिलिपि बनाएँ।

"" और अपने उपयोगकर्ता नाम और अपनी पसंद के ड्राइव अक्षर को प्रतिस्थापित करना याद रखें


3
2018-01-24 04:05





जब आप कुंजी हैश बनाते हैं, तो आप अंत में समानता चिह्न "=" जैसे कुछ के साथ समाप्त हो सकते हैं ga0RGNYHvNM5d0SLGQfpQWAPGJ8 =। जबकि फेसबुक खुशी से कुंजी हैश के हिस्से के रूप में समानता चिह्न स्वीकार करता है, आपको इसे काम करने के लिए इसे हटाना होगा।

इसके अतिरिक्त, स्वीकृत उत्तर देखें एंड्रॉइड फेसबुक एसडीके 3.0 लॉग इन करते समय "remote_app_id संग्रहीत आईडी से मेल नहीं खाता" देता है: डीबग कीस्टोर के लिए कुंजी हैश प्राप्त करते समय, पासवर्ड "एंड्रॉइड" का उपयोग करें। अन्यथा कुंजी हैश गलत होगा और आपको प्रश्न में निर्दिष्ट त्रुटि मिलेगी (अच्छा हो और अगर उसने आपकी मदद की तो वहां जवाब दें।)


2
2017-12-27 10:48





ओडब्ल्यूएन कीस्टोर के साथ हस्ताक्षरित ऐप्स के बारे में: इस मुद्दे को हल करने में कई घंटों खर्च करने के बाद, मुझे अंततः यह मिला और उन लोगों के लिए उत्तर देना चाहते हैं जो अभी भी पीड़ित हैं:

मेरे कदम: मैंने अपने ऐप पर अपनी खुद की कीस्टोर फ़ाइल (डीबग.कीस्टोर नहीं) के साथ ग्रहण के माध्यम से हस्ताक्षर किए। कमांड लाइन और ज्ञात कमांड के माध्यम से (keytool -exportcert -alias -keystore ~ ​​/ .android / | openssl sha1 -binary | openssl base64) मैं सफलluy कुंजी हैश प्राप्त किया। देव डैशबोर्ड में कुंजी हैश चिपकाया, कुछ मिनट इंतजार किया -> अभी भी वही त्रुटि (जैसा कि ऊपर दिए गए प्रश्न में निर्दिष्ट है)। मैंने कई अलग-अलग keytools, कई jdks, आदि पर कोशिश की ... कुछ भी नहीं बदला।

उपाय: मैं मैनिफेस्ट में डिबगबल चालू कर दिया, फेसबुक एसडीके में डीबगिंग चालू कर दिया। तो मैंने अपने स्वयं के कीस्टोर के साथ एपीके पर हस्ताक्षर किए और इसे वास्तविक डिवाइस पर अपलोड किया। मैंने यूएसबी के माध्यम से डिवाइस कनेक्ट किया और डिवाइस पर लॉगकैट देखने के लिए डीडीएमएस परिप्रेक्ष्य खोला।
मैंने अपना ऐप शुरू किया और त्रुटि संदेश होने दिया। यह keytool द्वारा उत्पन्न कुंजी से पूरी तरह से एक कुंजी मुद्रित करता है। मैंने यह कुंजी लॉककैट से ली, इसे डेव डैशबोर्ड और वॉयला -> सब कुछ काम करने के लिए चिपकाया

मुझे अभी भी पता नहीं क्यों ऐसा होता है या गलत कुंजी क्यों उत्पन्न कर रहा है, लेकिन इस तरह यह मेरे लिए काम करता है।


1
2017-10-05 00:15





उबंटू जैसे डेबियन सिस्टम पर उपयोग करें keytool का java निर्देशिका के तहत पाया गया /usr/lib/jvm/jdk*.*.*/bin/keytool और इस तरह उत्पन्न करते हैं

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

इस तरह आपको प्रामाणिक हैश कुंजी मिलती है जिसे फेसबुक के आपके ऐप हैश के तहत रखा जा सकता है।


1
2017-12-16 09:08