facebook unity sdk 7.0.2 - 重新打开应用程序时FB.IsLoggedIn返回false但仍应登录

时间:2015-07-11 00:15:43

标签: facebook unity3d facebook-unity-sdk

在升级到Unity FB SDK的7.X版本之前,FB.IsLoggedIn将在FB.Init之后返回true。现在,它返回false,你每次都必须重新登录。

这似乎是一个错误。

我在Unity 5.1.1p4上为Android构建。我还没有尝试过iOS。

复制步骤:

  1. 启动应用,登录FB
  2. 关闭应用
  3. 再次启动应用程序,您将不会自动登录到FB(FB.IsLoggedIn为false)
  4. 预期行为:

    如果你以前登录过,FB.IsLoggedIn应该是真的。这就是以前的工作方式。

2 个答案:

答案 0 :(得分:2)

FBUnityInterface.mm

  1. 添加到 - (id)init

    [[FBSDKApplicationDelegate sharedInstance] application:[UIApplication sharedApplication] didFinishLaunchingWithOptions:NULL];
    
  2. 替换 - (void)configureAppId

    [FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnInitComplete userData:@{} requestId:0];
    

    with:

    if ([FBSDKAccessToken currentAccessToken]) {
        FBSDKAccessToken *token = [FBSDKAccessToken currentAccessToken];
        NSInteger expiration = token.expirationDate.timeIntervalSince1970;
        [FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnInitComplete
                                  userData:@{
                                             @"opened" : @"true",
                                             @"access_token" : [FBSDKAccessToken currentAccessToken].tokenString,
                                             @"expiration_timestamp" : [@(expiration) stringValue],
                                             @"user_id" : [FBSDKAccessToken currentAccessToken].userID,
                                             @"permissions" : [token.permissions allObjects],
                                             }
                                 requestId:0];
        return;
    } else {
        [FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnInitComplete errorMessage:@"Unknown login error" requestId:0];
    }
    

答案 1 :(得分:0)

我们遇到了同样的问题。这是Facebook的一个错误。 Init调用的结果似乎根本不包含有关播放器的任何信息。实际上,它包含不同类型的无用数据,具体取决于当前平台。

Facebook已经承认了这个漏洞,他们说它已经修复了下一个尚未发布的版本。你可以在这里看到错误和确认。

https://developers.facebook.com/bugs/1459551294340956/?search_id