Keyhash'ı Sha1 sertifikası imzası'dan alabilirsiniz. Anahtar karmaları genellikle şu şekilde ayıklanır:
public static String getKeyHash(final Context context) {
PackageInfo packageInfo = getPackageInfo(context, PackageManager.GET_SIGNATURES);
if (packageInfo == null)
return null;
for (Signature signature : packageInfo.signatures) {
try {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
return Base64.encodeToString(md.digest(), Base64.NO_WRAP);
} catch (NoSuchAlgorithmException e) {
Log.w(TAG, "Unable to get MessageDigest. signature=" + signature, e);
}
}
return null;
}
Sen imza SHA-1 sürümü Base64 kodlanmış olduğunu görebiliriz. Google Play bu geliştirici konsolunda Uygulama İmzalama menüsü altında
, şuna benzeyen Sha-1 sertifika imza göreceksiniz: Yapmanız gereken şey, Temelde
SHA1: 3B:DA:A0:5B:4F:35:71:02:4E:27:22:B9:AC:B2:77:2F:9D:A9:9B:D9
bir bayt dizisi bu değiştirmektir ve Base64 bu bayt dizisini kodlar. Sen android giriş ayarlarını veya her yerde sizin gibi Facebook'a bu keyhash kaydedebilirsiniz
byte[] sha1 = {
0x3B, (byte)0xDA, (byte)0xA0, 0x5B, 0x4F, 0x35, 0x71, 0x02, 0x4E, 0x27, 0x22, (byte)0xB9, (byte)0xAc, (byte)0xB2, 0x77, 0x2F, (byte)0x9D, (byte)0xA9, (byte)0x9B, (byte)0xD9
};
Log.e("keyhash", Base64.encodeToString(sha1, Base64.NO_WRAP));
: Bir şey gibi yapabilirsiniz.
sonraki komutunu kullanarak base64 karma içine (Play konsolunda bulunan gibi) altıgen biçiminde SHA-1 karma dönüştürebilirsiniz
Bu çok iyi çalışıyor. Teşekkürler! –
Ayrıca, bu hash değerini, facebook'tan uygulamadan doğru hesapta oturum açarken bir hata mesajında da edinebilirsiniz. İlginç olan şudur ki, karmalar görsel olarak aynı görünmekle birlikte, programda, yukarıdaki yöntemi kullanarak programlı olarak oluşturduğumda, görsel olarak yazarken değil. – Chris
bu çözümü bulmak için çok fazla zaman harcadı, Cheers. –