我正在构建一个需要Facebook登录和身份验证的应用程序。
我正在关注
https://developers.facebook.com/docs/android/getting-started#create-app
我收到了这个错误:当我点击facebook登录按钮时:
多个帖子说这段代码应该解决错误
Key hash doesn't match while facebook login in android
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.hitup.hitup",
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)
{
}
然而无法解析toByteArray()方法!
如何解决此错误并为我的应用程序实现简单的Facebook登录?
答案 0 :(得分:43)
答案 1 :(得分:6)
from Logcat you can get hash key of facebook please do copy from logcat which having Logcat tag "KeyHash" and put it in your project on developer.facebook site
import android.content.pm.Signature;
try {
PackageInfo info = getPackageManager().getPackageInfo(
**"do not forgot to 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) {
} catch (NoSuchAlgorithmException e) {
}
OR
1. for Android default keystore : add this to in your terminal
keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore | openssl sha1 -binary | openssl base64
2. for signed keystore
keytool -exportcert -alias aliasname -keystore keystorename | openssl sha1 -binary | openssl base64