Facebook公共应用上的密钥哈希无效

时间:2017-09-07 12:23:01

标签: android facebook unity3d

我的Android上出现“无效密钥哈希”错误,即使我的应用程序正在制作中,并且facebook应用程序设置为公开。如果我把密钥哈希放到Facebook设置中它工作正常,但我想这只适用于我自己的设备。我在这里弄错了什么?

2 个答案:

答案 0 :(得分:1)

您必须使用此方法创建发布apk并打印keyhash。并在fb consol中设置keyHash。

public static void printHashKey(Context context)
{
    // Add code to print out the key hash
    try {
        PackageInfo info = context.getPackageManager().getPackageInfo(
                com.example.app.BuildConfig.APPLICATION_ID,
                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 (PackageManager.NameNotFoundException e) {
        e.printStackTrace();

    } catch (NoSuchAlgorithmException e) {

        e.printStackTrace();
    }
}

答案 1 :(得分:0)

按照以下步骤解决问题。

  1. 将此代码粘贴到您的活动中。

    public static void printHashKey(Context context) 
    { 
        // Add code to print out the key hash 
        try 
        { 
            PackageInfo info = context.getPackageManager().getPackageInfo( com.example.app.BuildConfig.APPLICATION_ID, 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 (PackageManager.NameNotFoundException e) 
        { 
            e.printStackTrace(); 
        } 
        catch (NoSuchAlgorithmException e) 
        { 
            e.printStackTrace(); 
        } 
    }
    
  2. 签署您的APK。(发布APK)

  3. 将生成的已签名APK安装到您的手机
  4. 将手机与电脑连接。
  5. 现在打开您放置上面代码的屏幕。
  6. 您可以在HashKey
  7. 中看到新的logcat
  8. 将此HashKey粘贴到应用创建的Facebook开发者网站中。
  9. 享受您的申请。