سؤال

لا يمكنني معرفة كيفية الحصول على التجزئة الرئيسية المطلوبة لاستخدام Facebook Android SDK. لقد اكتشفت أنه يمكنني استخدامه keytool مع هذه الأوامر:

  keytool -exportcert -alias [alias]
 -keystore [keystore] | openssl sha1 -binary | openssl enc -a -e

المشكلة الوحيدة هي أنه ليس لدي أي فكرة عن مكان إدراج هذا ، لقد حاولت من خلال Windows (Win7) وحاولت فتح ملف keytool.exe.

هل كانت مفيدة؟

المحلول

  1. تنزيل وتثبيت openssl http://slproweb.com/products/win32openssl.html استنادًا إلى نظام التشغيل Windows 32 أو 64 بت. (ملاحظة: قم بتنزيل وتثبيت First Visual C ++ 208 Rediviptable من هذا الموقع أيضًا)
  2. ضع دليل bin الخاص بـ OpenSSL في مسار Windows.
  3. افتح موجه الأوامر وانتقل إلى C: Users {user_name} .android
  4. الآن ضع هذا الأمر على CMD "keytool -exportcert -alias androiddebugkey -Keystore debug.keystore | Openssl Sha1 -binary | OpenSSL BASE64".(أشير https://developers.facebook.com/docs/android/getting-started#samples)
  5. الآن أدخل كلمة المرور "Facebook" دون اقتباس مزدوج.
  6. الآن سيتم إنشاء مفتاح التجزئةenter image description here
  7. أخيرًا انتقل إلى موقع مطور Facebook. تأكد من تسجيل الدخول إلى Facebook ، واستخدام القائمة المنسدلة في أعلى اليمين ، انتقل إلى "إعدادات المطور":
  8. بمجرد أن تكون في إعدادات المطور الخاصة بك ، حدد "نموذج تطبيق" من التنقل على اليسار ، وأضف وحفظ تجزئة المفتاح الخاص بك في ملفك الشخصي:enter image description here

نصائح أخرى

يمكنك تثبيت SSL المفتوح من هنا ، يجب أن يجعل الأمر يعمل

لقد قمت بإنشاء برنامج نصي دفعة facebookkeydebug.bat, ، والتي تعود هو هاش مفتاح Facebook المطلوب. فقط قم بتحرير البرنامج النصي ، وقم بتعيين المسارات الصحيحة ، واسم keystore وقم بتشغيله.

:: Getting Android key hash for Facebook app on Windows
:: Requirement: OpenSSL for Windows (http://code.google.com/p/openssl-for-windows/downloads/list)
:: Usage: set paths and run facebookkeydebug.bat

@echo Exporting keystore cert
keytool -exportcert -alias androiddebugkey -keystore C:\Users\myusername\.android\debug.keystore -storepass android -keypass android > debug.keystore.bin

@echo Converting to sha1
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl sha1 -binary debug.keystore.bin > debug.keystore.sha1

@echo Converting to base64
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1 -out debug.keystore.base64

@echo Done, Android hash key for Facebook app is:
C:\PROGRAMS\openssl-0.9.8k_X64\bin\openssl base64 -in debug.keystore.sha1
@pause

تحرير: لقد نشرت ريبو مع بعض البرامج النصية الدُفعات للتوقيع والحصول على مفاتيح cert على Windows: https://github.com/petrnohejl/android-scripts

يمكنك استخدام الرمز أدناه للحصول على مفتاح التجزئة:

try {

   PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), 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("name not found", e.toString());
  } catch (NoSuchAlgorithmException e) {
   Log.e("no such an algorithm", e.toString());
  }

المرجعي :

http://limbaniandroid.blogspot.com/2013/04/how-to-get-hash-key-for-integarte.html

لتسهيل الأمور -

keytool.exe -list -alias androiddebugkey -keystore debug.keystore -v

يجب أن يوفر لك هذا بصمات الأصابع المطلوبة ، دون متاعب التثبيت OpenSSL.

على سبيل المثال

Certificate fingerprints:
         MD5:  1A:5E:AA:CB:1A:CF:68:F0:8B:DA:D8:BC:EE:4F:BF:EE
         SHA1: D2:89:D1:5A:BC:F8:E3:E5:62:4D:DD:20:DD:96:CD:AB:51:A1:C1:7F
         Signature algorithm name: SHA1withRSA
         Version: 3

هذا مثال على كيفية الحصول على تجزئة المفتاح من keystore:

أولاً نحتاج إلى الحصول على مسارات:

طريق جافا:C: Program Files java jdk1.6.0_35 jre bin

فتح مسار SSL:ج: openssl-win32 bin

(التثبيت من: http://www.openssl.org/)

مسار Keystore:C: Data Android keystore

2) ثم انتقل إلى سطر الأوامر ونوعها:

القرص المضغوط [جافا مسار

3) ثم اكتب:

keytool.exe -exportcert -alias [الاسم المستعار] -keystore [keystore path] debug.keystore | [فتح مسار SSL] openssl sha1 -binary | [فتح مسار SSL] bin openssl base64

4) يجب أن تكون كلمة مرور keystore مطلوبة ثم لديك Hash Key تتعلق بـ Android Keystore.

enter image description here

هذا هو مستند كيفية تعيين Key Hash إلى عن على Facebook:

https://developers.facebook.com/docs/android/getting-started#release-key-hash

يجب عليك فتح نافذة موجه الأوامر. انتقل إلى البدء-> تشغيل واكتب "CMD" واضغط على Enter. ثم عليك الانتقال إلى المجلد حيث keytool هو (ما لم يكن في طريقك) ، ثم اكتب هذا الأمر.

وهذا هو ، على افتراض أن الأمر مخصص لنظام التشغيل Windows وليس Linux.

أفضل طريقة هي إنشاء تكثيف المفاتيح باستخدام الكود:

 public static void generateKeyHash(Context context) {
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                "com.example.user2.testapp",
                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 (PackageManager.NameNotFoundException e) {

    } catch (NoSuchAlgorithmException e) {

    }
}

استدعاء هذه الطريقة مرة واحدة وإنشاء تكثيف المفاتيح ، استمتع

C: Program Files java jdk1.6.0_22 bin keytool.exe -epportcert -alias "typeyouraliasName" -KeyStore locationof your keystore | C: openssl -win32 bin openssl sha1 -binary | C: openssl-win32 bin openssl base64

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top