9

我从我的调试商店获得了哈希键,使用

keytool -exportcert -alias androiddebugkey -keystore C:\Users\user.android\debug.keystore | openssl sha1 -二进制 | openssl enc -a -e

并将密钥粘贴到适用于 Android 的 Facebook 应用程序,并启用“Facebook 登录”选项。

当我第一次登录我的 Android 应用程序时,它会显示一个权限对话框,在授予权限后,我可以从 Facebook 获取我的详细信息。

但在那之后,当我退出应用程序并再次打开并尝试登录时,它显示在屏幕下方。

我不明白这一点,如果哈希键是问题,那么为什么它在第一次尝试中起作用。

我使用的是 facebook sdk 旧版本而不是新的 3.+ 版本。

尝试第二次登录时出错

4

2 回答 2

7

解决了这些问题,添加了“offline_access”的权限,并且哈希键应该与出现错误的键匹配。使用 Easy Facebook SDK 网站上提供的“Key Hash” apk,将其安装在手机上以获取 HASH KEY 或使用 KEYTOOL 插件获取密钥库的 SHA1,然后从此处将其转换为 base64 。并将此密钥添加到您的注册项目.. :) 希望这有助于@Pratick

于 2013-05-17T06:24:10.610 回答
-1

密钥哈希通过代码生成并粘贴到 facebook 应用程序设置密钥哈希。100%会解决。代码是

try {
        PackageInfo info = getPackageManager().getPackageInfo(
                "com.matainja.facebooklogin", 
                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 (NoSuchAlgorithmExceptio`enter code here`n e) {

    }

替换包名。

于 2015-07-27T07:10:05.487 回答