6

正如这篇文章的标题所说,我有一个问题。我无法登录。

SessionState currentstate =  session.getState();

给我一个状态CLOSED_LOGIN_FAILED。我看了这篇文章,Android Facebook SDK 3.0 在登录时给出“remote_app_id 与存储的 id 不匹配”

我使用 keytool 生成了一个密钥并将其放在 App Dashboard 中。但这似乎没有帮助。对此的任何帮助表示赞赏

4

2 回答 2

31

从您的活动的 oncreate 调用以下方法,它将在 logcat 中打印一个哈希键,将其添加到 Facebook 上应用程序设置的哈希字段中。再试一次它会工作

  public void printHashKey() {

        try {
            PackageInfo info = getPackageManager().getPackageInfo("your.package.name",
                    PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                Log.d("TEMPTAGHASH KEY:",
                        Base64.encodeToString(md.digest(), Base64.DEFAULT));
            }
        } catch (NameNotFoundException e) {

        } catch (NoSuchAlgorithmException e) {

        }

    }
于 2013-01-23T18:09:32.283 回答
5

我知道这已经有一个选定的答案,但重要的是要注意,如果您尝试使用 keytool 而不是在代码中打印 keyhash,请确保使用 java 1.6 附带的 keytool 而不是 java 1.7。

于 2013-01-30T14:46:29.433 回答