Android Facebook SDK的keytool

Blu*_*ell 15 java sdk android facebook keytool

我只想要一些确认.

我正在开发Windows

我正在尝试将facebook集成到应用程序中,SDK文档说我需要'导出签名'

从这里:http://developers.facebook.com/docs/guides/mobile/#android

所以它说运行这个命令:

 keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
Run Code Online (Sandbox Code Playgroud)

首先我必须下载openssl:OpenSSL

现在上面的命令,我假设应该转换为:

"C:\path\to\java\keytool" -exportcert -alias your_alias -keystore "C:\path\to\your\keystore\keystore.name" | "C:\path\to\openssl_install\bin\openssl" sha1 -binary |"C:\path\to\openssl_install\bin\openssl" base64
Run Code Online (Sandbox Code Playgroud)
  • 那么您想要安装在最新Java安装文件夹中的keytool吗?
  • 您希望别名是您在eclipse中用于正常apk创建的别名的名称吗?
  • 您希望密钥库是导出Android应用程序时使用的密钥库吗?
  • 您希望openssl成为您刚刚安装的那个

所以一旦我完成了它,它会要求输入密码:(它显示密码,因为我正在输入密码)

如果我输入正确的密码,我会得到

'zR2tey1h9kqPRSW/yEYEr0ruswyD ='(公开更改)

但是,如果我输入的密码不正确,它仍会返回一个代码形式的代码

'ga0RGNYHvTR5d3SVDEfpQQAPGJ1 ='?

所以,是的,只是在寻找确认我正在做正确的事情,这是预期的输出

Min*_*amy 12

获取哈希的最佳方法是运行以下代码:

try {
            PackageInfo info = getPackageManager().getPackageInfo(getPackageName(), PackageManager.GET_SIGNATURES);
            for (Signature signature : info.signatures) {
                MessageDigest md;

                    md = MessageDigest.getInstance("SHA");
                    md.update(signature.toByteArray());
                    String something = new String(Base64.encode(md.digest(), 0));
                    Log.e("hash key", something);
        } 
        }
        catch (NameNotFoundException e1) {
            // TODO Auto-generated catch block
            Log.e("name not found", e1.toString());
        }

             catch (NoSuchAlgorithmException e) {
                // TODO Auto-generated catch block
                 Log.e("no such an algorithm", e.toString());
            }
             catch (Exception e){
                 Log.e("exception", e.toString());
             }
Run Code Online (Sandbox Code Playgroud)

当使用windows cmd,git bash或cygwing终端提取哈希时,这三个工具会给出不同的结果.

最准确的是上面的代码


Rit*_*esh 1

是的,我认为你的做法是正确的。我还执行这个命令并将这个哈希值放入我的 Facebook 应用程序中,并且它可以正常工作。