4

我想使用 Facebook Native 登录

我正在关注http://developers.facebook.com/docs/tutorials/androidsdk/3.0/scrumptious/authenticate/ 。我得到了权限警报框,但是当我选择时,ok我得到 SessionState 作为 CLOSED_LOGIN_FAILED 。

我也重新检查了 App keyHash。有什么方法可以从代码本身获取 KeyHash,我的意思是打印它在比较时检查的 keyhash。

我也经历了许多其他线程,但没有成功,我不知道我哪里出错了。有什么可能,所以我可能会收到这个错误。欢迎任何相关答案。

4

3 回答 3

11

使用以下代码来获取密钥哈希,而不是通过命令行生成 keyhash。您需要注意的其他一些事情是 1)在 facebook 设置中设置正确的包名称 2)在 facebook 应用程序设置仪表板上启用 facebook 登录

try {
    PackageInfo info = getPackageManager().getPackageInfo(
            "com.example.com.tvishi.fb", 
            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) {

} catch (NoSuchAlgorithmException e) {

}
于 2013-03-08T05:27:36.157 回答
1

我刚刚遇到这个问题并尝试了上面提到的所有解决方案,但都没有解决这个问题。就我而言,我的测试设备手机(htc my touch)上不断出现此错误。我注意到,当我尝试用手机上的浏览器登录 facebook 时,它一直给我证书错误!所以我终于发现我手机上的日期和时间不正确。修复后,CLOSED_LOGIN_FAILED 错误消失了。希望对将来的人有所帮助!

于 2013-11-10T13:24:42.603 回答
0

https://developers.facebook.com/apps/

您必须列出您拥有的所有密钥哈希。如果您的密钥哈希未在此处列出,那么您将无法登录,FB 将拒绝您。

如果您再次移动到另一台计算机,则需要再次执行此操作。

于 2013-09-02T02:07:12.733 回答