其他分享
首页 > 其他分享> > Android上的Facebook Unity SDK – 安装FB App时登录失败

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

作者:互联网

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

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

{ “is_logged_in”:假的, “USER_ID”: “”, “的access_token”: “”}

FBResult.Error

空值

当安装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

解决方法:

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

remote_app_id does not match stored 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

标签:android,facebook,facebook-unity-sdk
来源: https://codeday.me/bug/20190927/1823915.html