android - फेसबुक कुंजी हैश किसी भी संग्रहीत कुंजी हैश से मेल नहीं खाता है




facebook facebook-android-sdk (10)

मुझे वास्तव में फेसबुक हैश कुंजी के साथ परेशानी हो रही है। मैंने इसे अपने ग्रहण में उत्पन्न किया .. सबूत:

फिर मैं https://developers.facebook.com/ और एक नया ऐप पंजीकृत किया।

और अंत में मैंने फेसबुक डेवलपर्स की सेटिंग्स पर अपनी हैशकी सेट की है:

लेकिन मैं जो भी करता हूं, वही त्रुटि लॉग प्राप्त करता रहता हूं: "कुंजी हैश B5dWUEYfZJL / ........... jyA = किसी संग्रहीत कुंजी हैश से मेल नहीं खाता"

क्या किसी को पता है कि मैंने क्या गलत किया है या मैं इस समस्या को कैसे ठीक कर सकता हूं? अगर मैंने अपने स्वयं के ऐप के अंदर HelloFacebookSample से आईडी और नाम का उपयोग किया है तो सबकुछ काम करता है। तो यह कुंजी हैश, आईडी या नाम के साथ करना है जिसे मैंने कहीं अधिक सेट किया है ..

धन्यवाद, Yenthe


  1. अपने कुंजी हैश मान की जांच करें।
  2. अपने फोन से फेसबुक एप्लिकेशन अनइंस्टॉल करें।
  3. फिर एसडीके का उपयोग करके पुनः प्रयास करें।

यह मेरी समस्या हल हो गई।


"आपकी ऐप के लिए एकल सिंगल साइन ऑन" यही कारण है कि यह केवल एक बार काम करता है। कृपया developer.facebook पर जाएं और सेटिंग्स की जांच करें। मेरे लिए काम करें


एंड्रॉइड के डीबग.किस्टोर सहित डीबग कुंजी स्टोर का उपयोग करना .android फ़ोल्डर में मौजूद एक अजीब समस्या उत्पन्न कर रहा था; एंड्रॉइड ऐप पर फेसबुक लॉगिन बटन का उपयोग कर लॉग-इन पूरी तरह से वांछित के रूप में पूरी तरह से होगा। लेकिन जब भी मैंने लॉग आउट किया और लॉग इन करने का प्रयास किया, तो यह एक त्रुटि फेंक देगा: इस ऐप में एंड्रॉइड कुंजी हैश कॉन्फ़िगर नहीं है। कृपया http: // पर जाएं ....

Keytool कमांड का उपयोग कर एक कीस्टोर बनाना (keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -sigalg SHA1withRSA -keysize 2048 -validity 10000) और इस कीस्टोर को मेरी परियोजनाओं में सबसे ऊपर पैरेंट फ़ोल्डर डालना और बनाना परियोजनाओं में निम्नलिखित प्रविष्टि build.gradle फ़ाइल ने हल किया:

 signingConfigs {
        release {
            storeFile file("my-release-key.keystore")
            storePassword "passpass"
            keyAlias "alias_name"
            keyPassword "passpass"
        }    }

कृपया ध्यान दें कि कमांड लाइन के रूप में हैश मान उत्पन्न करने के लिए कमांड लाइन का उपयोग करने के बजाय कुंजी हैश मान (अपने ऐप के developer.facebook.com साइट पर पंजीकरण करने के लिए) को अपने एंड्रॉइड गतिविधि के क्रिएट () के अंदर हमेशा निम्न विधि का उपयोग करें। कुछ cased एक गलत कुंजी हैश डाल सकता है:

    public  void showHashKey(Context context) {
        try {
            PackageInfo info = context.getPackageManager().getPackageInfo("com.superreceptionist",
                    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("KeyHash:", sign);
                //  Toast.makeText(getApplicationContext(),sign,     Toast.LENGTH_LONG).show();
            }
            Log.d("KeyHash:", "****------------***");
        } catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
e.printStackTrace();
        }
    }

एक्लिप्स / कीटोल से SHA1 कुंजी जोड़ने से मुझे केवल एफबी पर ऐप बनाने में मदद मिली, फिर पुनर्निर्माण के बाद मुझे हमेशा ओपी त्रुटि मिल जाएगी।

फेसबुक डैशबोर्ड सेटिंग्स में त्रुटि संदेश में मेरी समस्या को हल करने में मेरी समस्या का हल क्या हुआ।


मुझे अब दो महीने के लिए यह समस्या है। मेरी कुंजी हैश 9 तक बढ़ रही है। आज मुझे अंततः सरल समाधान मिला:

चरण 1:

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

चरण 2:

अपने ऐप को अपनी अंतिम रिलीज कुंजी के साथ एपीके के रूप में निर्यात करें, जैसे कि आप इसे प्लेस्टोर पर अपलोड करते समय करेंगे।

चरण 3:

यूएसबी केबल या यूएसबी स्टिक के माध्यम से एपीके फ़ाइल को अपने फोन पर रखें।

चरण 4:

फ़ाइल प्रबंधक का उपयोग करके अपना ऐप इंस्टॉल करें: उदाहरण के लिए https://play.google.com/store/apps/details?id=com.rhmsoft.fm

चरण 5:

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

चरण 6:

कुंजी लिखो।

चरण 7:

इसे अपने फेसबुक डेवलपर कंसोल में रखें और सहेजें। अब आप कर चुके हैं कोई भी जो आपके ऐप को डाउनलोड करता है, पहले इस्तेमाल किए गए कीस्टोर के साथ प्रकाशित, फेसबुक में लॉग इन कर सकता है।

का आनंद लें


मुझे एक समान समस्या का सामना करना पड़ा। समाधान आश्चर्यजनक रूप से सरल है।

त्रुटि संदेश इस तरह दिखता है:

07-05 ...... Invalid key hash. The key hash sL1***************VY= does not match any stored key hashes. Configure your app key hashes at http://developers.facebook.com/apps/150*******778
07-05 ......     at com.facebook.login.LoginManager.onActivityResult(LoginManager.java:191)

बस https://developers.facebook.com/ में लॉग इन https://developers.facebook.com/ , "सेटिंग्स" टैब का चयन करें, और सहेजने की सूची में कुंजी हैश "एसएल 1 *************** VY =" जोड़ें एंड्रॉइड पैनल में कुंजी हैश।


मुझे विकास के दौरान एक ही समस्या का सामना करना पड़ा और फेसबुक पर साझा करने की जांच करने के लिए हैश कुंजी प्राप्त करने की आवश्यकता थी, और इसे हल करते समय मैं कुछ मुद्दों से गुज़र गया

1- कमांड फेसबुक ओपनएसएसएल कमांड का उपयोग करके हैश कुंजी प्राप्त करने के लिए प्रदान करता है, मुझे सही हैश नहीं मिला है जो मुझे कोड के साथ पैकेज जानकारी से हस्ताक्षर निकालने के द्वारा मिला है। दूसरे तरीके से हैश प्राप्त करना सही था।

2- किसी कारण से, प्रलेखन में वे आपको डेवलपर सेटिंग्स पर जाने के लिए कहते हैं और वहां 'नमूना ऐप' के लिए हैश कुंजी जोड़ते हैं, मैंने सोचा कि डेवलपर के लिए हर हैकी वहां होना चाहिए, और यह मेरी गलती थी, हर ऐप में यह है जोड़ने के लिए अपने हैश कुंजी फ़ील्ड, अपने ऐप / सेटिंग्स / एंड्रॉइड पर जाएं।

ठीक है कि यह था .. और रिकॉर्ड के लिए मैंने विंडोज 7 x64 बिट पर openssl-0.9.8k_X64 का उपयोग किया और यह सिर्फ एक गलत हैश उत्पन्न करता है मुझे नहीं पता क्यों

मैंने हैश प्राप्त करने के लिए इस कोड का उपयोग किया:

private void printKeyHash() {
    // Add code to print out the key hash
    try {
        PackageInfo info = getPackageManager().getPackageInfo("YOUR PACKAGE NAME", 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) {
        Log.e("KeyHash:", e.toString());
    } catch (NoSuchAlgorithmException e) {
        Log.e("KeyHash:", e.toString());
    }
}

लेकिन सावधान रहें कि यह मेरे डिवाइस और मशीन पर कम से कम सही कुंजीशैश लॉग में प्रिंट नहीं कर सकता है, जब मैं इसे डीबग करता हूं, तो घड़ी में यह लॉग प्रिंट करने से पहले सही हैश दिखाता है, लेकिन लॉग में यह एक और हैश दिखाता है और पहला एक सही था।

वैसे भी आप अपनी कुंजी के लिए SHA हेक्साडेसिमल अनुक्रम देखने के लिए कमांड या ग्रहण का उपयोग कर सकते हैं और इसे बेस 64 ऑनलाइन में परिवर्तित कर सकते हैं, ऐसी वेबसाइटें हैं जो http://tomeko.net/online_tools/hex_to_base64.php?lang=en मदद कर सकती हैं

सौभाग्य


मुझे सिमुलेटर समस्या मिली। Google PlayStore पर अपने ऐप पर हस्ताक्षर करने और प्रकाशित करने के बाद ऐसा लगता है कि हैश बदल गया है। मैंने डेवलपर्स.facebook.com/app//settings पर अपने ऐप में कुंजी हैश में मैसेज किए गए फेसबुक में नया हैश (जैसा बताया गया है) जोड़ा। अब यह फिर से काम करता है।


यह एक ऐसा मामला है जो संभवतः हो सकता है और मेरी त्रुटि का हल क्या हो सकता है:

आपके द्वारा चलाए जाने के बाद https://developers.facebook.com/quickstarts

OSX / लिनक्स:

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

विंडोज:

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64

Enter keystore password: समय Enter keystore password: पूछा जाता है कि आपने गलती से गलत पासवर्ड टाइप किया होगा , डिफ़ॉल्ट पासवर्ड " android " है। किसी भी अन्य पासवर्ड टाइप करने से आपको एक अलग / गलत हैश कुंजी मिल जाएगी। अपने ऐप पेज पर Key Hashes फ़ील्ड में सही हैश कुंजी पेस्ट करें

इससे मेरी समस्या हल हो गई, उम्मीद है कि इससे कोई भी इस विशेष त्रुटि को बनाने में मदद मिलेगी


यह पागल दिखता है लेकिन यह काम करता है

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

लेकिन आपको वास्तविक उपयोगकर्ता के साथ इस त्रुटि का सामना नहीं करना पड़ेगा। किंतु मुझे यकीन नहीं है

आखिरकार अगले चरण का पालन करें:

  1. अपने निजी फेसबुक खाते पर जाएं जिसे आप लॉग इन करने का प्रयास करते हैं
  2. फिर ऐप डीआईआर में और क्लिक करें

  1. सेटिंग्स पर क्लिक करें

और फिर क्रॉस क्लिक करें

और अब आप फेसबुक के साथ लॉगिन कर सकते हैं। लेकिन अगली बार यदि आप लॉग आउट करते हैं और फिर से लॉग इन करने का प्रयास करेंगे तो आपको एक ही समस्या का सामना करना पड़ता है ...

यह भी अजीब है ...

लेकिन मुझे विश्वास नहीं है कि फेसबुक इस बारे में नहीं जानता ...





facebook-sharer