适用于Android的Facebook SDK for SDK - 来自FB.Login的回调问题

时间:2013-09-23 12:14:55

标签: android facebook unity3d facebook-unity-sdk

我在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})

9 个答案:

答案 0 :(得分:2)

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

Keyhash设置

您可以将logcat设置为使用日志标记“fb4a”过滤消息,您将看到基础Facebook Android SDK抛出异常,说明您的密钥与任何存储的密钥匹配。

您可以复制该密钥并将其添加到Facebook开发人员信息中心。

其他插件

我们推出了SDK的新v5.0.2测试版,它可以与其他插件配合使用。

在此帖子How to work with Facebook SDK for Unity and Vuforia for Android?

中查看Brian的答案

答案 1 :(得分:1)

最新版本的sdk修复此问题,可在此处下载:https://developers.facebook.com/docs/unity/downloads/

答案 2 :(得分:1)

我通过尝试从此

下载新的openssl来解决

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

并更改新的哈希密钥。

答案 3 :(得分:0)

有同样的问题,我按原样导出测试场景,并且无法安装facebook app。

我正在使用sdk v4.2.4。

答案 4 :(得分:0)

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

如果有人想知道,我使用this page中的那个。

如果错误字段确实告诉了什么是错误的话,这样可以避免浪费时间......

答案 5 :(得分:0)

如何发布密钥库,我正在使用Unity签署我的应用程序,并且我从Unity创建的密钥库中获取了keyhash,但是同样的错误,登录显示,但是is_logged_in:false

答案 6 :(得分:0)

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

答案 7 :(得分:0)

适用于Android的Facebook Unity插件与其他插件不相称 覆盖MainActivity,所以除非你先启动它(从AndroidManifest.xml) 它不会将任何数据(登录信息,朋友列表)返回给Unity和您的游戏。

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

我有自己的插件(在eclipse中编译的纯java)处理Saving,IAP,通知等,我首先启动该插件 - 要使Facebook插件工作,你必须添加一点点Facebook“会话”代码到你自己的Main Activity类中的onActivityResult:

@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来编译,我和任何人一样惊讶 当它工作;但如果你使用其他第三方插件,这将无济于事 无法访问他们的来源。

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

答案 8 :(得分:0)

@ user2830062重新检查你的keyhash。当你得到正确的keyhash时,你需要每台计算机获得新的keyhash并添加到dev facebook页面(list keyhash)