使用非测试人员Facebook帐户的Android Facebook登录错误

时间:2015-12-29 20:54:01

标签: android facebook facebook-graph-api sdk facebook-javascript-sdk

我正在开发一款使用Facebook登录的Android应用程序 只需检索用户的Facebook个人资料名称和ID。

自2个月以来,我正在debug模式下测试我的应用程序,并使用调试键盘。 我正在测试我的应用程序的所有配置文件都被添加为"测试人员",在我的应用程序的Facebook Developper控制台上。一切都很完美。

现在,该应用已准备就绪。我生成了一个有效的版本keyhash,删除了所有的" app tester"来自Facebook App Developper Console的帐户。 此外,我将应用程序切换为" public",所以每个人都应该访问它。

当我尝试使用某人的帐户登录时,在调试或发布模式下,它总是会失败。在调试模式下,不会打印任何日志错误,因此它不是" keyhash"的事情。

当我按下按钮时,它会打开Facebook应用程序,显示进度条,然后立即关闭。它会调用onCancel()中的FacebookCallback<LoginResult>()

正如其他人在另一个stackoverflow帖子login jumps to onCancel中所说的那样,我尝试在尝试登录之前调用LoginManager.getInstance().logOut();。 在这种情况下,不会调用onCancel()函数,并调用onSuccess()函数。但是,如果我尝试执行Profile.getCurrentProfile()函数(就像之前应用程序工作时那样),它会抛出异常(e.getMessage()为空)。

非常感谢帮助!

编辑: Log.d("Token", loginResult.getAccessToken() + "");打印

E/Token﹕ {AccessToken token:ACCESS_TOKEN_REMOVED permissions:[public_profile]}

1 个答案:

答案 0 :(得分:1)

该错误的原因是我要求错误的权限。 我在user_status函数中将public_profile替换为logInWithReadPermissions()