2012-12-15 22 views
43

में लॉग इन करते समय "remote_app_id संग्रहित आईडी से मेल नहीं खाता" देता है, मैं एंड्रॉइड 3.0 के लिए फेसबुक एसडीके का उपयोग करने वाला ऐप बनाने की कोशिश कर रहा हूं। लेकिन जब मैं फोन करने के लिएएंड्रॉइड फेसबुक एसडीके 3.0

Session.openActiveSession 

यह सिर्फ बस मुझे CLOSED_LOGIN_FAILED के साथ एक SessionState देता है, और LogCat है कोशिश कर रहा हूँ:

12-16 00:03:40.510: W/fb4a:fb:OrcaServiceQueue(4105): com.facebook.orca.protocol.base.ApiException: remote_app_id does not match stored id 

मैं "remote_app_id" के साथ StackOverflow खोज की है और परिणाम हैं " आईओएस में बंडल आईडी ", लेकिन मुझे नहीं पता कि एंड्रॉइड में" remote_app_id "का क्या अर्थ है। मैंने पहले से ही अपने फेसबुक ऐप सेटिंग्स में पैकेज का नाम और गतिविधि का नाम सेट कर दिया है। मुझे त्रुटि के कारण का कोई अंदाजा नहीं है।

+0

कृपया बंदरफिश के पीछे वास्तविक कारण का उत्तर दें, ओपेन्सल कृपया सही संस्करण डाउनलोड करें, ताकि हैश कुंजी सही ढंग से जेनरेट की जाएगी –

+0

** 2014 के लिए नोट - यह समस्या यह है कि 'यह काम करता है यदि उपयोगकर्ता के पास नहीं है एफबी ऐप स्थापित 'समस्या। ध्यान दें कि >>> कुछ समय <<< समाधान बहुत सरल है; आप डेवलपर.फेसबुक साइट पर सही मूल्य डालना भूल गए हैं। ** एफबी से ब्रायन कृपया यहां बताते हैं (उनकी छवियों को नोट करें) http://answers.unity3d.com/questions/543540/facebook-sdk-v424-android- login-not-working.html उम्मीद है कि यह किसी की मदद करता है, अगर आप इसमें फंस जाते हैं तो यह एक वास्तविक शर्टी समस्या है। – Fattie

उत्तर

34

मैंने इस प्रश्न को हल किया। समस्या यह है कि "कीट" का उपयोग करके उत्पन्न "कुंजी हैश" गलत था। जब "keytool" पासवर्ड के लिए संकेत देता है, तो आपको इसके लिए "एंड्रॉइड" का उपयोग करना होगा (उद्धरण के बिना)। मैं इसके बजाय अपना पासवर्ड इस्तेमाल कर रहा था। जब मैंने अपना पासवर्ड बदल दिया, तो समस्या बस उड़ गई। उम्मीद है की यह मदद करेगा।

+7

हर किसी को @ जेपीएमगलहास का जवाब भी देखना चाहिए। वह इस बारे में भूलने के लिए फेसबुक पर स्पॉट है कि आपको उस उत्पादन कुंजीस्टोर पर कुंजी हैश प्राप्त करने की आवश्यकता है जिसके साथ आप ऐप पर हस्ताक्षर करते हैं। – KevinM

+0

आपका मतलब है कि पासवर्ड टाइप करते समय यह एक सरल 'एंड्रॉइड' होना चाहिए? मैंने अपने 'कीस्टोर पासवर्ड' का उपयोग किया है, इसका मतलब है मेरा अपना पासवर्ड। तो फिर मुझे नई हैश कुंजी बनाना है? –

+0

@chintankhetiya डिबगिंग के लिए हैश कुंजी को छोड़कर, आपको रिलीज के लिए एक और हैश कुंजी जोड़ने की आवश्यकता है। मैं हमेशा कीटोल के साथ गलत कुंजी उत्पन्न करता हूं, कोई फर्क नहीं पड़ता कि कीस्टोर या "एंड्रॉइड" का पासवर्ड दर्ज करें। अंत में मुझे काम करने योग्य कुंजी प्राप्त करने के लिए बंदरफिश से उस स्निपेट को सम्मिलित करना होगा। बहुत अजीब। – Robert

77

एक और संभावित त्रुटि (जो मेरे साथ हुआ) है: फेसबुक ऐप कंसोल पर "की हैश" सेट अप करने और एक और कीस्टोर का उपयोग करके एंड्रॉइड ऐप पर हस्ताक्षर करने के लिए।

दुर्भाग्य से ऐसा इसलिए हुआ क्योंकि Facebook Getting Started Tutorial इस त्रुटि को प्रेरित करता है। यह कहता है कि एंड्रॉइड डेवलपर्स को आपके उदाहरणों में डिफ़ॉल्ट एंड्रॉइड डीबग कुंजी का उपयोग करना चाहिए और यह नहीं समझाता है कि कुंजी हैश उसी कुंजीस्टोर के साथ जेनरेट किया जाना चाहिए, आप अपने एप्लिकेशन पर हस्ताक्षर करेंगे।

  1. डिफ़ॉल्ट एंड्रॉयड डिबग कुंजी:

Keytool -exportcert -alias androiddebugkey -keystore ~ ​​/ .android/

मेरे खुलने और अपने फेसबुक कंसोल पर दो कुंजी हैश स्थापित करने के लिए है debug.keystore | openssl sha1 -binary | openssl बेस 64

  1. आपके आवेदन रिहाई कुंजी:

Keytool -exportcert -alias yourappreleasekeyalias -keystore ~ ​​/ .आपके/path/release.keystore | openssl sha1 -binary | openssl base64

याद रखें: आप एसडीके उपकरण द्वारा उत्पन्न डीबग कुंजी के साथ हस्ताक्षरित एक एप्लिकेशन प्रकाशित नहीं कर सकते हैं। तो यह (केवल हैश पहले पिछले कमांड लाइन का उपयोग कर उत्पन्न कुंजी का उपयोग कर के रूप में फेसबुक ट्यूटोरियल पता चलता है कोई ऐप प्रकाशित करने के लिए संभव नहीं है।

आपके आवेदन पर हस्ताक्षर करने के बारे में अधिक जानकारी के लिए देखें Signing Your Application

+3

निश्चित रूप से यह समस्या थी, क्योंकि जेपीमैगलहास ने कहा था, आपको दोनों कुंजी (डीबग और रिलीज) मिलनी चाहिए और उन्हें अपने फेसबुक डेवलपर साइट पर पोस्ट करना चाहिए। इसके बाद, आपकी डीबग और रिलीज एपीके बिना किसी समस्या के काम करेंगे। सही उपनाम डालना मत भूलना!:) –

+2

मेरी समस्या एक जैसी थी, कारण अलग था हालांकि: मैंने एक सह-डेवलपर से मौजूदा कोड की जांच की; एफबी लॉगिन पर, मुझे उपरोक्त त्रुटि मिली; रिज़ॉल्यूशन: अपने डेवलपर कंसोल पर एक डीबग कुंजी हैश प्रति विकास मशीन (एफबी डेवलपर्स ट्यूटोरियल से: "ध्यान दें कि यदि आप एकाधिक मशीनों के साथ विकास कर रहे हैं तो आप यहां कई कुंजी हैंश जोड़ सकते हैं।) – vaiomike

+1

धन्यवाद एक टन @ जेपीएमगलहास यह मेरी समस्या हल हो गया :) – Panache

61

एक अन्य विकल्प है फेसबुक के लिए भेजा कुंजी हैश बाहर मुद्रित करने के लिए और का उपयोग करें कि मूल्य

अपने मुख्य गतिविधि में onCreate() विधि के लिए निम्न परिवर्तन करें:।

try { 
    PackageInfo info = getPackageManager().getPackageInfo(
      "com.facebook.samples.loginhowto", 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) { 
} catch (NoSuchAlgorithmException e) { 
} 

बदलें com.facebook.samples.loginhowtoyour own package name के साथ।

यह मेरे लिए काम किया!

+4

पर जाएं यह एकमात्र चीज है जो मेरे लिए भी काम करती है। अजीब :) – Adam

+3

बहुत चीजें। 1) यह [https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/](official दस्तावेज़) से आता है, इसलिए हाँ यह काम करता है। 2) ऐप सेटिंग्स में डालने की कुंजी वह है जिसे आप इस कोड से प्राप्त करते हैं, न कि आप 'keytool -list -v -keystore ~ ​​/ .android/debug.keystore ~ ​​/ –

+0

अनुसरण करते हैं इसका त्रुटि संदेश, मुझे उम्मीद है कि यह फेसबुक एपीपी आईडी के बारे में एक मुद्दा था, लेकिन अंततः यहां से सही जवाब मिला ... – RRTW

4

मुझे एक ही समस्या थी, पता चला कि openssl गलत sha1 बना रहा था। ने एक नया डाउनलोड किया और यह एक आकर्षण की तरह काम किया।

+0

मैंने उपरोक्त से प्रिंट समाधान का उपयोग यह पता लगाने के लिए किया कि एन्क्रिप्शन गलत था। – TacoEater

+0

बहुत बहुत धन्यवाद, मेरी इच्छा है कि मैं इस पर +1000 कर सकता हूं, यह नहीं पता कि यह जवाब सही क्यों नहीं चुना जा रहा है ..... ओपेन्सल एक बड़ा दर्द था ... फेसबुक के पास खोलने का लिंक होना चाहिए एसडीके ट्यूटोरियल साइट –

0

साथ ही, सुनिश्चित करें कि आप फेसबुक dev पोर्टल में सही जगह पर हैश दर्ज करें। एप्लिकेशन सेटिंग्स संपादित करें और मूल एंड्रॉइड ऐप का चयन करें।

मैंने गलती से हैश को 'नमूना ऐप सेटिंग्स' में रखा था।

0

आपको डीबग कुंजी के साथ हैश-कुंजी मिल रही है ... यदि आप पैकेज पर हस्ताक्षर नहीं करते हैं और डीबग मोड में ऐप चला रहे हैं तो कौन सा काम कर सकता है। आपको क्या करना है:

1) मैनिफेस्ट फ़ाइल पर जाएं और एप्लिकेशन एंड्रॉइड में जोड़ें: debuggable = "true"।

2) अब अपना ऐप चलाएं और लॉककैट की निगरानी करें।

3) आपको एक नई कुंजी मुद्रित की जाएगी जो x9SLcMXBlgly1f36PJuuc4a3YAc के साथ मेल खाने वाली कुंजी होगी, आपके पास जो कुंजी है वह अब अंतिम में साइन = है।

4) facbook डेवलपर साइट

वैकल्पिक चाल पर यह की रजिस्टर

आप सीधे शब्दों में फेसबुक डेवलपर्स साइट के लिए इस कुंजी रजिस्टर x9SLcMXBlgly1f36PJuuc4a3YAc =

बस कुंजी करने के लिए = जोड़ने एक दूसरी बात कर सकते हैं जो फेसबुक ऐप द्वारा दिखाया जा रहा है।

आप कर रहे हैं !! उम्मीद है कि यह काम करेगा।

संबंधित मुद्दे