在升级到Unity FB SDK的7.X版本之前,FB.IsLoggedIn将在FB.Init之后返回true。现在,它返回false,你每次都必须重新登录。
这似乎是一个错误。
我在Unity 5.1.1p4上为Android构建。我还没有尝试过iOS。
复制步骤:
预期行为:
如果你以前登录过,FB.IsLoggedIn应该是真的。这就是以前的工作方式。
答案 0 :(得分:2)
在FBUnityInterface.mm
:
添加到 - (id)init
:
[[FBSDKApplicationDelegate sharedInstance] application:[UIApplication sharedApplication] didFinishLaunchingWithOptions:NULL];
替换 - (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