我正在使用android studio开发一个使用facebook sdk的应用程序.
当我使用以下命令
C:\Program Files\Java\jdk1.7.0_21\bin>keytool -exportcert -alias androiddebugkey
-keystore "C:\Users\ninad\.android\debug.keystore" | "D:\OpenSSL\bin\openssl" s
ha1 -binary |"D:\OpenSSL\bin\openssl" base64
Run Code Online (Sandbox Code Playgroud)
它返回y5EquINHD6DvwVJFyJTuUEY3NSU =
当使用此哈希键时,facebook会显示错误
android_key参数无效.密钥c33Tm0FL_-kxyaPZq1JBLDh767U与任何允许的密钥都不匹配.
使用eclipse和android studio时,facebook需要的哈希键是否不同?其中哪些是我正确的哈希键?
我在facebook中添加了我的应用程序的哈希键.仍然应用程序显示无效的android_key参数.
Tar*_*run 68
你为什么不尝试这个代码并检查你正在使用的哈希键.来自facebook文档:
除了仔细检查密钥哈希生成步骤之外,还有另一个选项可确保您使用正确的密钥哈希.它涉及更改其中一个示例应用程序中的代码以打印发送到Facebook的签名.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Add code to print out the key hash
try {
PackageInfo info = getPackageManager().getPackageInfo(
"your.package",
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 (NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
}
Run Code Online (Sandbox Code Playgroud)
小智 7
这是创建facebook哈希键的链接:
public class FacebookHashKeyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_facebook_hash_key);
try {
PackageInfo info = getPackageManager().getPackageInfo("your.package.name", 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 (NameNotFoundException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
代码来自这里.
小智 5
只需在 oncreate 方法中运行它
private void printHashKey() {
try {
PackageInfo info = getPackageManager().getPackageInfo(
"-----------PUT YOUR PACKAGE NAME ------------",
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();
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
53461 次 |
最近记录: |