android facebook integration invalid key hash


Answers

إذا كنت تواجه هذه المشكلة ، ضع هذا المفتاح في developer.facebook.com

ثم تأكد من تشغيل التطبيق الخاص بك

developer.facebook.com

تشير هذه الدائرة الخضراء إلى أن التطبيق نشط

إذا لم يكن الأمر كذلك ، فاتبع هاتين الخطوتين لجعل تطبيقك مباشرًا

الخطوة 1 انتقل إلى التطبيق الخاص بك -> الإعداد => وإضافة البريد الإلكتروني للاتصال وتطبيق حفظ التغييرات

Setp 2 ثم انتقل إلى خيار مراجعة التطبيق وتأكد من أن هذا الخيار هو نعم أضفت لقطة شاشة

ملاحظة: إذا كنت تريد نسخ hashkey تحقق من BlueServiceQueue في Logcat.

Question

مرحبًا بك جميعًا في أحد تطبيقاتي وأحتاج إلى الحصول على بيانات fb ... أفعل ذلك ...

لقد قمت بإنشاء معرف التطبيق بتسجيل الدخول بنجاح ولكن بعد تسجيل الدخول أنا الدخول ثم يعطيني

ما هو الخطأ الذي أفعله؟ يرجى أقترح أنني أستخدم Facebook sdk ... لقد قمت بتثبيت الفيسبوك في هاتفي ... هذا حسن تشغيل في المحاكي الذي لا يحتوي على تثبيت تطبيق Facebook يحمل في ثناياه عوامل

هذا هو كوداتي

 if (FB_APP_ID == null) {
            Builder alertBuilder = new Builder(this);
            alertBuilder.setTitle("Warning");
            alertBuilder.setMessage("A Facebook Applicaton ID must be " +
                    "specified before running this example: see App.java");
            alertBuilder.create().show();
        }

        // Initialize the dispatcher
        Dispatcher dispatcher = new Dispatcher(this);
        dispatcher.addHandler("login", LoginHandler.class);
        dispatcher.addHandler("stream", StreamHandler.class);
        dispatcher.addHandler("logout", LogoutHandler.class);

        // If a session already exists, render the stream page
        // immediately. Otherwise, render the login page.
        Session session = Session.restore(this);
        if (session != null) {
            dispatcher.runHandler("stream");
        } else {
            dispatcher.runHandler("login");
        }



يجب إنشاء تجزئتي مفتاح واحد لـ Debug وواحد للإصدار.

لتجزئة مفتاح التصحيح :

على نظام التشغيل OS X ، قم بتشغيل:

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

على نظام التشغيل Windows ، قم بتشغيل:

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

تصحيح مصدر تجزئة المفتاح

لتجزئة مفتاح الإصدار :

في نظام التشغيل OS X ، قم بتشغيل: (استبدل ما بين <> مع قيمك)

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

على نظام التشغيل Windows ، استخدم: (استبدل ما بين <> مع قيمك)

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

الافراج عن مصدر التجزئة الرئيسية




وفقًا لـ Facebook Login for Android ، يجب تقديم قيمة Key Hash. من أجل الحصول عليها ، ستحتاج إلى المفتاح المستخدم للتوقيع على طلبك.

keytool \
    -exportcert \
    -alias YourKeyAlias \
    -storepass YourStoreKeyPassword \
    -keystore PathToYourKeyStoreFile | openssl sha1 -binary | openssl base64



إذا كنت تستخدم Google Play App Signing:

افتح قسم توقيع التطبيقات في Google Play Console ، واحصل على SHA1 لشهادة توقيع التطبيق ، من تحويله إلى base64 ، على سبيل المثال باستخدام هذه الأداة: http://tomeko.net/online_tools/hex_to_base64.php?lang=en




سيعطيك هذا الرمز الخاص بك تجزئة لفيسبوك ولكن عليك اتباع هذه الخطوات من أجل الحصول على تجزئة الافراج عن كثرة. 1. قم بنسخ ولصق هذا الرمز في النشاط الرئيسي الخاص بك

try {
    PackageInfo info = getPackageManager().getPackageInfo(
                "com.example.packagename", 
                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) {

}
  1. توليد apk وقعت.
  2. توصيل هاتفك بالكمبيوتر المحمول والتأكد من أنه يظل متصلاً.
  3. قم بتثبيت وتشغيل apk في هاتفك عن طريق تحريك APK الإصدار يدويًا إلى هاتفك.

  4. ننظر الآن في logcat الروبوت (استخدم فلتر KeyHash:) يجب أن تشاهد مفتاح التجزئة الخاص بك الافراج عن فيسبوك. ببساطة نسخ ولصقها في https://developers.facebook.com/apps الخاص بك تحت إعدادات.

  5. الآن يمكنك اختبار التطبيق يجب أن تعمل بشكل جيد.

    حظا طيبا وفقك الله.




بعد الكثير من المحاكمات تعثرت على حل لهذا. لقد قمت بإنشاء وإضافة مفاتيح تصحيح الأخطاء والإصدار إلى وحدة تحكم مطوّري البرامج في Facebook ولا تزال تحصل على الخطأ.

وكان الحل الوحيد الذي نجح في ذلك هو إلغاء تثبيت برنامج OpenSSL من google وتنزيله من http://slproweb.com/products/Win32OpenSSL.html

انها حقا تعمل مثل السحر




الرجال هنا الكثير من الإجابات الصحيحة. فقط شئ واحد. لصق تلقت التجزئة في التطبيق -> إعدادات -> الرئيسية وليس عن طريق برنامج تعليمي البدء السريع.




الصق التعليمة البرمجية التالية في طريقة OnCreate

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.example.packagename", 
            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) {
  e.printStackTrace();

} catch (NoSuchAlgorithmException e) {
    e.printStackTrace();
}

فقط قم بتعديل اسم الحزمة.ثم اذهب إلى قطة السجل وحدد بحث تصحيح هنا ثم ستجد مفتاح التجزئة. الآن انسخ مفتاح التجزئة هذا ثم انتقل إلى developer.facebook.app_id site ثم حرر مفتاح التجزئة الخاص بك ثم اضغط على حفظ. الآن قم بتشغيل مشروع android الخاص بك مرة أخرى وأعتقد أن المشكلة ستحل.




بعد بحث طويل ، وجدنا حلاً.

لقد قمنا بتعيين الأذونات على النحو التالي:

loginButton.setReadPermissions (public_profile email)؛

لقد نجحت هذه المرة للمرة الأولى ، ولكن عندما قمنا بإعادة تسجيل الدخول إلى FB ، فقد أعطت خطأ التجزئة غير صالح.

كان الحل البسيط هو تغيير السطر أعلاه إلى:

    loginButton.setReadPermissions(Arrays.asList(
            "public_profile", "email"));

وعملت مثل النعيم!

نأمل أن يساعد هذا شخص ما.

يجب أن يعرض Facebook الاستثناء الصحيح بدلاً من خطأ مفتاح التصنيف غير الصحيح المضلل.