如何创建用于在Android应用程序中集成Facebook的签名哈希代码?

时间:2011-11-09 06:42:17

标签: android android-emulator command android-2.2-froyo facebook-android-sdk

我正在将facebook集成到我的应用程序中。但我停下来获取Android应用程序的Hash代码。链接获取Facebook的哈希代码:Here

我在推荐提示中使用此syntex,但得到错误,如keytool未被识别为内部或外部命令:

D:\Users\Priyadarshan\.android>keytool -exportcert -alias androiddebugkey -keyst
ore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
'keytool' is not recognized as an internal or external command,
operable program or batch file.

请帮帮我。 感谢。

编辑:

看到:This Link

我已完成如下但仍有错误:

D:\Users\Priyadarshan>cd C:\Program Files\Java\jre7\bin\keytool -exportcert -ali
as androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary |
openssl base64
'openssl' is not recognized as an internal or external command,
operable program or batch file.

经过一些指导我已经完成了如下但仍然有错误:

D:\Users\Priyadarshan>cd C:\Program Files\Java\jre7\bin\keytool -exportcert -ali
as androiddebugkey -keystore ~/.android/debug.keystore | D:\Users\Priyadarshan\o
penssl-0.9.8k_WIN32\bin\openssl sha1 -binary | D:\Users\Priyadarshan\openssl-0.9
.8k_WIN32\bin\openssl base64
The system cannot find the path specified.
2jmj7l5rSw0yVb/vlWAYkK/YBwk=

4 个答案:

答案 0 :(得分:3)

我在其他目录中有keytool:

  

C:\ Program Files(x86)\ Java \ jre6 \ bin

您可以将keytool所在的路径添加到PATH环境变量中,也可以在完整路径周围使用引号,例如

  

D:\ Users \ Priyadarshan.android>“C:\ Program Files \ etc \ keytool.exe”-exportcert等等

由于路径中的空格,请不要忘记引号!

答案 1 :(得分:2)

keytool随JDK一起提供。

假设您使用默认设置安装了JDK,您将找到它C:\Program Files\Java\jdk1.6.0_23\bin\keytool.exe

答案 2 :(得分:1)

来自facebook文档的编码器获取哈希码只是在模拟器中运行它

   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));
                   //Toast.makeText(StartingPlace.this, something,
                        //  Toast.LENGTH_LONG).show();
                    Log.e("hash key", something);
        } 
        }
        catch (NameNotFoundException e1) {
            // TODO Auto-generated catch block
            Log.e("name not found", e1.toString());
        }

             catch (NoSuchAlgorithmException e1) {
                // TODO Auto-generated catch block
                 Log.e("no such an algorithm", e1.toString());
            }
             catch (Exception e1){
                 Log.e("exception", e1.toString());
             }
        //code to get hash code

答案 3 :(得分:0)

您可以使用此link中的Open SSL,
此问题在此post

中讨论