1

我在 android 设备上登录 facebook-unity-sdk 时遇到一些问题。当我登录并获得回调时,他们会返回这个

FBResult.Text

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

FBResult.Error

null

并且 FB.IsLoggedIn 每次登录完成后都为空

我正在使用最新版本的 Facebook SDK (4.2.1) 和 Unity 4.2

关于调试日志

Send to Unity OnLoginCompleted({"cancelled":true})
4

9 回答 9

2

这些问题通常是由两件事引起的:

密钥哈希设置

您可以将 logcat 设置为过滤带有日志标签“fb4a”的消息,您将看到底层 Facebook Android SDK 抛出异常,指出您的 keyhash 与任何存储的 keyhash 不匹配。

您只需复制该密钥哈希并将其添加到 Facebook 开发人员仪表板即可。

其他插件

我们有新的 v5.0.2 测试版 SDK,应该可以与其他插件很好地配合使用。

在此线程中查看 Brian 的回答How to work with Facebook SDK for Unity 和 Vuforia for Android?

于 2014-01-22T21:58:32.303 回答
1

最新版本的 sdk 解决了这个问题,可在此处下载:https ://developers.facebook.com/docs/unity/downloads/

于 2013-09-23T18:49:40.753 回答
1

我通过尝试从这里下载新的 openssl 解决了

http://gnuwin32.sourceforge.net/packages/openssl.htm

并更改新的哈希键。

于 2013-12-01T05:08:20.317 回答
0

我的问题现在已经解决了。这个问题与项目中的多插件有关。现在(我认为),Facebook SDK 不能与其他想要在 android 上为他们提供主要活动的插件一起使用。导出 android 项目并重新检查 AndroidManifest.xml 并维护它们以确保正确的事情,它应该有 FBUnityActivity 用于许多插件覆盖它们的单任务,因此 facebook 无法在游戏启动时获得会话。希望这个 SDK 可以与另一个插件一起使用的下一个版本。谢谢大家的建议:)

于 2013-10-16T11:24:26.390 回答
0

Android 版 Facebook Unity 插件无法与其他插件配合使用,因为它会覆盖 MainActivity,因此除非您首先启动它(从 AndroidManifest.xml),否则它不会将任何数据(登录信息、朋友列表)返回给 Unity和你的游戏。

当然,大多数其他插件现在都不起作用。

我有自己的插件(在 Eclipse 中编译的纯 java),它处理保存、IAP、通知等,我首先启动该插件 - 要使 Facebook 插件工作,您必须在 onActivityResult 中添加一点 Facebook“会话”代码你自己的主要活动类:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    // Pass on the activity result to the helper for handling
    if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
        // not handled, so handle it ourselves (here's where you'd
        // perform any handling of activity results not related to in-app
        // billing...

        // Facebook callback

        if (Session.getActiveSession() != null) {
            Session.getActiveSession().onActivityResult(this, requestCode,
                    resultCode, data);
        }

        super.onActivityResult(requestCode, resultCode, data);
    } else {
    }
}

你需要 FacebookSDK.jar 来编译它,当它工作时我和任何人一样感到惊讶;但如果您使用其他 3rd 方插件并且无法访问其源代码,这将无济于事。

为 Android 编写 Unity 插件是一场噩梦。

于 2013-11-29T21:09:15.753 回答
0

尝试升级你的openSSL并重新生成keyhash,我在这个问题上被困了几天,一遍又一遍地尝试我想到的一切......直到我读到有人这样做,所以我尝试了魔法!我试图让 FB SDK 使用的所有测试项目都做得很好;)

如果有人想知道,我使用了此页面中的那个。

如果错误字段确实说明出了什么问题,那么这种浪费时间是可以避免的......

于 2013-10-03T08:53:48.780 回答
0

有同样的问题,我按原样导出测试场景并且不适用于安装的 facebook 应用程序。

我使用 sdk v4.2.4。

于 2013-09-30T09:08:12.913 回答
0

@user2830062 重新检查您的密钥哈希。当您获得正确的 keyhash 时,您需要在每台计算机上获取新的 keyhash 并添加到 dev facebook 页面(列出 keyhash)

于 2014-05-04T13:14:58.973 回答
0

What about release keystore, I am signing my app with Unity , and I get the keyhash from the keystore that Unity created, but same error, login shows up , but is_logged_in :false

于 2013-10-14T17:14:23.730 回答