当用户尝试通过 Facebook 登录时,我的 Android 应用程序的登录页面正在循环返回。此错误是由于 Facebook sdk 请求权限造成的。不幸的是,只有在从 Google Play 商店下载应用程序时才会请求权限。我该如何调试这个问题?
谢谢
当用户尝试通过 Facebook 登录时,我的 Android 应用程序的登录页面正在循环返回。此错误是由于 Facebook sdk 请求权限造成的。不幸的是,只有在从 Google Play 商店下载应用程序时才会请求权限。我该如何调试这个问题?
谢谢
我认为您在生成 Play 商店版本时没有在 Facebook 控制台中添加应用程序的密钥哈希(使用不同的应用程序签名,因此使用不同的密钥哈希)。
将此代码添加到您的 Main Activity onCreate() 方法:
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
"com.facebook.samples.hellofacebook",
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.i("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
生成应用程序的 Play 商店版本并在您的设备上运行它。
您应该在 logcat 日志中看到您的密钥哈希。只需在 Facebook 控制台中添加密钥哈希(设置 > 基本 > 密钥哈希),等待几分钟,它现在应该可以工作了。
从您的主要活动中删除代码。