我正在使用Facebook的最新Android SDK。
我有一个使用LoginButton连接到Facebook的应用程序。如果我尝试登录我的帐户(Facebook应用程序的所有者),则可以。
但是,如果我尝试登录其他帐户,则会显示一个对话框,在点击“确定”后会要求获得权限。什么都没发生。我无法连接到该Facebook帐户并获取用户数据。
注意:我还应该提一下,如果我尝试使用Facebook SDK中的示例应用程序登录该帐户,则会出现相同的情况。
任何人都可以帮我解决这个问题。
提前致谢。
更新1:我试图让我的应用程序的其他帐户所有者工作。我现在可以登录了。但我仍然对这个问题感到好奇。
更新2:我解决了我的问题。检查下面的答案
答案 0 :(得分:0)
通过在OnCreate
之后将此代码放在MainActivity中,从项目中获取Key哈希值 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());
}
转到logcat并从那里复制Key哈希 然后转到https://developers.facebook.com/并点击您创建的应用,然后转到设置,将您的密钥粘贴到Key Hashes框中,然后点击保存更改。 确保您的应用是公开的,如果不是公开的,则可供所有用户使用,然后转到设置将您的电子邮件置于“联系人电子邮箱”框中,然后点击保存更改,然后选中应用名称旁边的小圆圈。
答案 1 :(得分:0)
我解决了我的问题。这是因为我的Facebook应用程序不适用于公众。
解决方案:
1)转到Facebook Developer Console。
2)选择应用。
3)点击状态&评论标签。
4)将“应用的可用性”切换为“公开”。这是那里的重大转变。
PS:如果您无法启用它,请尝试添加联系电子邮件:设置> 基本> 联系电子邮件