Я использую FacebookSDK и выполняю все шаги для создания нового хэша ключа, хэш ключа, сгенерированный с использованием хранилища ключей отладки, работает как шарм, но хеш ключа, сгенерированный с использованием нашей собственной пары хранилищ ключей, не работает, затем я попробовал функцию, указанную в устранение неполадок, но это все еще не работает. Я попытался использовать следующий код в onCreate
// Add code to print out the key hash
try {
System.out.println("Inside try for keyhash");
PackageInfo info = getPackageManager().getPackageInfo(
"com.myapp.facebookint",
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));
System.out.println("KeyHash:"+Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
System.out.println("keyhash name not found");
} catch (NoSuchAlgorithmException e) {
System.out.println("keyhash algo not found");
}
Он дал мне хеш-ключ, который я вставил в настройки приложения Facebook, без разрешения! Теперь мне интересно узнать о концепции использования keyhash, как ее идентифицирует Facebook? и что произойдет, если я просто загружу приложение, используя ключ отладки?
У меня сложилось впечатление, что facebook сопоставляет хеш-ключ с подписями самого приложения, и если оба они подписаны с одним и тем же хранилищем ключей, то это позволяет приложению пройти аутентификацию, но, похоже, это не так. Когда я экспортировал приложение, как будто готовил его к выпуску, загрузил apk в телефон через проводник и попытался установить и запустить оттуда, это было так же, как в режиме отладки.
Может ли кто-нибудь пролить свет на это.