2013-01-01 43 views
4

我试图从我的Android应用获取密钥哈希值。 Facebook的SDK 3.0提供了以下代码:未生成密钥哈希

keytool -exportcert -alias androiddebugkey -keystore %HOMEPATH%\.android\debug.keystore | openssl sha1 -binary | openssl base64 

当我运行这一点,首先说binary:no error;然后它要求我输入的密码为android。一旦按下输入,它将返回空白,我期望通过密码。

我使用了提到的解决方案here;这确实给了我一个关键的散列,但是当我使用没有任何会话正在打开。

我的Java密钥工具存储在:

C:\Program Files\Java\jre7\bin 

和OpenSSL存储在:

F:\openssl\bin 

我给了正确的文件路径,当我在MD在Windows中运行它。

请帮我弄清楚这一点!

+0

此外另一个位置:http://stackoverflow.com/questions/5306009/facebook-android-generate-key-hash?rq=1 –

回答

0

您可能错了密码。

看看我的回答Here

希望帮助

0

Windows总是有点多毛和棘手的keytool,我建议替代方案。在您的应用程序的onCreate方法运行下面的代码:

try { 
     PackageInfo info = getPackageManager().getPackageInfo(
      "COM.YOUR.PACKAGE.NAME", 
      PackageManager.GET_SIGNATURES); 
     for (Signature signature : info.signatures) { 
      MessageDigest md = MessageDigest.getInstance("SHA"); 
      md.update(signature.toByteArray()); 
      Log.d("My Keyhash", Base64.encodeToString(md.digest(), Base64.DEFAULT)); 
     } 
    } catch (Exception e) { 
     Log.e("My Keyhash", e.toString()); 
    } 

,并观察日志输出在logcat中获取您keyhash。确保使用您自己的名称替换上面的软件包名称。

编辑:

关键字hash正确上传,但仍然会同时登录到Facebook的它第一次请求我的允许throgh的应用程序和后,我接受弹出来不开...达说:“com.facebook.facebookexception:会议提供的未开封状态的请求”

确保你在你的片段/活动有这样的代码:

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    uiHelper.onActivityResult(requestCode, resultCode, data); 
} 
+0

感谢..得到了生成的密钥散列但我更新了我的应用程序,但会议仍然没有成功。 – thenoob

+0

你将不得不提供更多的细节,如果你想要帮助(如堆栈跟踪,错误消息) –

+0

关键哈希被正确上传,但会议仍然不会打开...而登录到Facebook它首先要求对于我的权限throgh应用程序和后我接受弹出窗口出现说:“com.facebook.facebookexception:会话提供给未开启状态的请求” – thenoob