在分享时,Facebook希望我提供密钥哈希,但是当应用程序在Google Play上发布时,我提供了哪些密钥哈希

时间:2014-09-02 10:55:29

标签: android facebook

当我尝试通过我的Android应用程序在Facebook开发人员控制台中使用FacebookSDK和相应的Facebook应用程序向Facebook提供内容时,我收到了一条错误消息:

Facebook key hash does not match any stored key hashes

然后我去了logcat的日志,从错误信息中获取了哈希键,去了Facebook开发者 - >应用程序并将其添加到那里。

现在我可以分享帖子了。

但是,当我将应用发布到Google Play时,该怎么办?我必须添加什么密钥哈希到Facebook,以便我的所有用户都可以在他们的Facebook Walls上发布?

1 个答案:

答案 0 :(得分:1)

步骤1:将以下方法放入代码中(主要活动或其他)。

/**
     * Generates the hash key used for Facebook console to register app. It can also be used for other sdks) Method copied from: https://developers.facebook.com/docs/android/getting-started/
     */
    public static String printHashKey(Context ctx) {
        // Add code to print out the key hash
        try {
            PackageInfo info = ctx.getPackageManager().getPackageInfo(ctx.getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(signature.toByteArray());
                return Base64.encodeToString(md.digest(), Base64.DEFAULT);
            }
        } catch (NameNotFoundException e) {
            return "SHA-1 generation: the key count not be generated: NameNotFoundException thrown";
        } catch (NoSuchAlgorithmException e) {
            return "SHA-1 generation: the key count not be generated: NoSuchAlgorithmException thrown";
        }

        return "SHA-1 generation: epic failed";
    }

第2步:在MainActivity的onCreate():System.out.println("Fb key: "+printHashKey(this));

第3步:导出您的应用APK,使用用于签署上传到Google Play商店的APK的相同keyStore对其进行签名。

步骤4:在您的设备上安装APK,将其连接到您的PC,然后在LogCat中查找要打印的Fb key

步骤5:使用已附加您应用的帐户登录Facebook,开发者控制台。在“设置”下,您可以添加在步骤4中打印出的哈希键。