Android上的Facebook Unity SDK - 安装FB App时登录失败

时间:2013-09-27 12:57:15

标签: android facebook facebook-unity-sdk

我似乎遇到了与此问题中讨论的问题相同的问题: Facebook SDK for Unity on Android - Trouble about callback from FB.Login

在Android上安装常规Facebook应用程序时,使用Unity SDK调用FB.Login()会提示用户接受应用程序的权限,当应用程序获得批准时,将触发回调: FBResult.Text

{"is_logged_in":false,"user_id":"","access_token":""}

FBResult.Error

null

当安装Facebook应用程序时,使用了Web流程并且工作正常,但我已尝试使用Unity SDK的v4.2.4和v4.2.2。

有关解决问题的其他建议吗?

编辑:还应该注意,我已经在2个不同的设备(Galaxy Note 10.1和Nexus 7)上尝试了这个功能

提前致谢!


2014年的一个注释。在某些情况下,问题很简单,就是你忘记了developers.facebook上的设置。 Brian在这里用图片解释:http://answers.unity3d.com/questions/543540/facebook-sdk-v424-android-login-not-working.html如果您完全忘记了设置,那么在没有fb应用程序的设备上它会工作(!)。至于实际问题,幸运的是有一个解决方案,即使您在Mac上使用Unity也很简单:http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

2 个答案:

答案 0 :(得分:5)

Ach觉得很傻,最终设法解决了这个问题,通过部署到中间件Google Android Project,我能够使用logcat获得更有用的错误消息:

  

remote_app_id与存储的ID

不匹配

从那里我发现了与标准Android SDK相关的这个主题: Android Facebook SDK 3.0 gives "remote_app_id does not match stored id" while logging in

最后通过将Key Hash替换为此代码段获得的Key Hash来解决问题

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) {
}

用您自己的软件包名称替换com.facebook.samples.loginhowto

来源: https://stackoverflow.com/a/14421260/2823496

似乎通过命令行或Unity获得正确的keyhash取决于安装了正确版本的openssl(并存储在PATH中),但不知道是什么版本。 (尝试了相关答案中的那个)所以请与其他任何正在努力解决这个问题的人接触。


注意 - 如果您使用Mac进行Unity开发,则几乎不可能这样做。在这种情况下,这是幸运的简单解决方案http://answers.unity3d.com/questions/609810/using-facebook-api-with-android-says-login-is-canc.html

答案 1 :(得分:0)

我有同样的错误。我已删除Facebook应用程序。我的应用程序运行正常


更多内容:https://stackoverflow.com/a/23446140/294884