我正在使用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它返回了
y5EquINHD6DvwVJFyJTuUEY3NSU=
当使用这个散列键时,facebook显示错误
无效的android
_
key参数。关键
c33Tm0FL
_
-kxyaPZq1JBLDh767U
不匹配任何允许的键。
使用eclipse和android studio时,facebook需要的哈希键是否不同?其中哪一个是我正确的哈希键?
我在facebook的应用程序中添加了这两个散列键。尽管如此,应用程序仍然显示无效的android
_
key参数。
发布于 2013-06-12 02:45:54
WHy您不会尝试这段代码并检查您正在使用的哈希键。来自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) {
}
}发布于 2013-10-19 13:21:35
以下是创建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();
}
}
}代码摘自
这里
..。
发布于 2017-01-25 20:18:28
只需在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();
}
}https://stackoverflow.com/questions/16916646
复制相似问题