我在我的应用中集成了facebook。我必须通过Facebook登录,我有appID和系统生成的密钥哈希存储在developer.facebook.com。我通过Facebook应用程序登录它显示无效键哈希并显示该键哈希。但是,如果我从我的设备中删除fb应用程序。它将通过chrome登录fb并成功获取用户详细信息。
现在我想知道的是,为什么如果通过Facebook应用程序显示错误。我想通过Facebook应用程序,所以请给我一个解决方案。
提前致谢。
答案 0 :(得分:1)
在Application类的OnCreate方法中粘贴下面的示例代码(仅用于获取ssh密钥)
import android.util.Base64;
import android.util.Log;import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.Signature;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
MessageDigest md = null;
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
context.getPackageName(),
PackageManager.GET_SIGNATURES);
for (Signature signature : info.signatures) {
md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
Log.i("KeyHash = ",Base64.encodeToString(md.digest(), Base64.DEFAULT));
上面的代码将在您的日志中打印KeyHash。
在facebook开发人员面板中复制并粘贴密钥。
注意: Keyhash因发布/调试环境而异或参考下方的图片