Итак, я уже некоторое время внедрил вход через Facebook в свое приложение для Android, и уже несколько месяцев он работает нормально.
Проблемы начались, когда я обновил версию SDK до одной из последних (4.22.0). После этого нажатие кнопки «Войти через Facebook» просто вызывает короткую попытку входа в систему, а затем ничего. Из журнала я вижу, что onCancel() в FacebookCallback вызывается, но это все.
Все работает нормально, когда я удаляю приложение Facebook. Я прохожу через веб-просмотр, а затем могу продолжить (вызывается onSuccess()).
Я попытался вернуться к версии SDK, которую использовал ранее, но безуспешно. Я проверил, что мои KeyHash совпадают (как отладочные, так и выпускные) с тем, что находится на панели инструментов разработчика Facebook, и это соответствует. Идентификатор моего приложения тоже совпадает».
Я знаю, что я вышел из системы до попытки входа в систему, так как я принудительно выхожу из системы с помощью LoginManager.
Это очень странно. Я использовал следующий код для генерации своего KeyHash:
try {
PackageInfo info = getPackageManager().getPackageInfo(
"***.*****.************",
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) {
}