1

我正在为我的 iOS 游戏使用 Unity Facebook SDK,但 FB.Feed 无法正常工作。使用 Unity 4.2.2 和 Facebook SDK 4.2.4

这是发生的事情:

  • 在游戏开始时,调用 FB init

    void Awake () {
        enabled = false;
        FB.Init(SetInit, OnHideUnity);
    }
    
    private void SetInit()
    {
        enabled = true; // "enabled" is a magic global
        FB.GetAuthResponse(LoginCallback);
    }
    
    private void OnHideUnity(bool isGameShown)
    {
        if (!isGameShown)
        {
            Time.timeScale = 0;
        }
        else
        {
            Time.timeScale = 1;
        }
    }
    
    void LoginCallback(FBResult result)
    {
    Debug.Log("call login: " + FB.UserId);
        FbDebug.Log("call login: " + FB.UserId);
        Debug.Log("login result: " + result.Text);
        FbDebug.Log("login result: " + result.Text);
        if (result.Error != null)
        {
            Debug.LogError(result.Error);
            return;
        }
    }
    
  • 当我单击在 facebook 上分享的按钮时,会调用以下函数:

    public void FBShare() {
        if(!FB.IsLoggedIn)
            FB.Login("email,publish_actions", LoginCallback);
        FB.Feed(
            linkName: "My Game",
            linkDescription: "Just played My Game. It's awesome!",
            linkCaption: "I just smashed 4" + " friends! Can you beat it?",
            picture: "http://www.friendsmash.com/images/logo_large.jpg",
            callback: LogCallback
        );
    }
    
  • 如果我没有登录,那么我会在 facebook 上收到登录提示(切换到 FB 应用程序)

  • 如果我还没有授权该应用程序,那么我也会收到提示。
  • 然后 Facebook 分享提要出现,其中包含我在函数中输入的所有指定信息,前面的所有步骤都正常工作。
  • 一旦我触摸发布按钮,问题就开始了。该应用程序开始上传我的帖子,然后突然切换回游戏。

在过去的 3 天里,我的头发被扯掉了。找不到任何帮助。回调函数的日志返回空响应。

4

2 回答 2

2

登录是一个异步函数。一旦你调用它,它就会从你的应用程序中执行多任务并尝试进行身份验证。您在调用登录后立即调用 Feed。Feed 还将尝试在您的应用程序中执行多任务处理。您为此案例创建了一个自定义登录回调,并从其中调用 feed。

于 2013-10-23T17:54:56.507 回答
2

我终于弄明白了。问题是在线 Facebook 应用程序上的捆绑 ID 不正确,这些更改需要一些时间才能传播到所有 FB 服务器,因此问题所在并不立即明显。

于 2013-10-24T05:36:31.627 回答