التجزئة الرئيسية لـ Facebook Android SDK
سؤال
لا يمكنني معرفة كيفية الحصول على التجزئة الرئيسية المطلوبة لاستخدام Facebook Android SDK. لقد اكتشفت أنه يمكنني استخدامه keytool
مع هذه الأوامر:
keytool -exportcert -alias [alias]
-keystore [keystore] | openssl sha1 -binary | openssl enc -a -e
المشكلة الوحيدة هي أنه ليس لدي أي فكرة عن مكان إدراج هذا ، لقد حاولت من خلال Windows (Win7) وحاولت فتح ملف keytool.exe.
المحلول
- تنزيل وتثبيت openssl http://slproweb.com/products/win32openssl.html استنادًا إلى نظام التشغيل Windows 32 أو 64 بت. (ملاحظة: قم بتنزيل وتثبيت First Visual C ++ 208 Rediviptable من هذا الموقع أيضًا)
- ضع دليل bin الخاص بـ OpenSSL في مسار Windows.
- افتح موجه الأوامر وانتقل إلى C: Users {user_name} .android
- الآن ضع هذا الأمر على CMD "keytool -exportcert -alias androiddebugkey -Keystore debug.keystore | Openssl Sha1 -binary | OpenSSL BASE64".(أشير https://developers.facebook.com/docs/android/getting-started#samples)
- الآن أدخل كلمة المرور "Facebook" دون اقتباس مزدوج.
- الآن سيتم إنشاء مفتاح التجزئة
- أخيرًا انتقل إلى موقع مطور Facebook. تأكد من تسجيل الدخول إلى Facebook ، واستخدام القائمة المنسدلة في أعلى اليمين ، انتقل إلى "إعدادات المطور":
- بمجرد أن تكون في إعدادات المطور الخاصة بك ، حدد "نموذج تطبيق" من التنقل على اليسار ، وأضف وحفظ تجزئة المفتاح الخاص بك في ملفك الشخصي:
نصائح أخرى
يمكنك تثبيت 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.
هذا هو مستند كيفية تعيين 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