当Facebook应用程序存在时,会话登录不会做出反应。适用于SSO

时间:2013-03-04 07:32:51

标签: android facebook single-sign-on

我已按照本指南为我的Android应用程序实施了Facebook:

https://developers.facebook.com/docs/getting-started/facebook-sdk-for-android/3.0/

我的目标是获取access_token,以便我可以将其连接到我的后端服务器

现状:

  • 未安装Facebook应用时,应用程序功能齐全。调用Facebook SSO,所有操作都将按照正常情况进行

  • 安装Facebook应用程序后,将显示请求权限的本机Facebook对话框,随后不再采取进一步操作。

enter image description here

任何Facebook专家都会关心此事吗?

2 个答案:

答案 0 :(得分:2)

好的,我解决了!

正如Shoshi在评论中提到的那样。

Android Facebook sample app doesn't login when FB app installed

应该在Facebook App控制台中添加签署Android应用程序的密钥库的keyhash。

简而言之:

  1. 导出签署的应用程序
  2. 从密钥库获取keyhash。见Facebook Android Generate Key Hash
  3. 将哈希值添加到Facebook应用
  4. FB注册哈希值可能需要一段时间。

答案 1 :(得分:0)

问题可能是您上传的哈希键以及我从下面的代码得到的哈希键是不同的。尝试此代码此代码,在控制台中获取哈希代码,在Facebook控制台上更新它,它将登录完美。我发布这个是为了让我的开发人员节省一些时间来解决这个问题。

try {
PackageInfo info = getPackageManager().getPackageInfo(
      "com.facebook.samples.loginhowto", 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) {
}