带有FBSDKLoginBehaviorWeb的FBSDKLoginManager失败并显示“未登录”错误

时间:2015-08-12 23:52:39

标签: facebook-login facebook-ios-sdk facebook-sdk-4.0

最近Facebook的服务器上有些关于他们如何处理登录请求的事情已经发生了变化,因为这曾经完美地工作并突然停止。

(我们正在使用FBSDKLoginManager.loginBehavior = FBSDKLoginBehaviorWeb,因为我们的应用是如何针对多个品牌(一个代码库,许多应用)进行复制的,以及我们使用原生登录遇到的问题。)

无论如何,当我们尝试向用户呈现登录webview时,我们就会看到这一点(之前它甚至让他们尝试登录):

enter image description here

(未登录:您尚未登录。请登录并重试。)

这是我们用来呈现登录视图的代码:

NSString *const publish_actions = @"publish_actions";
FBSDKLoginManager* login = [FBSDKLoginManager new];
login.loginBehavior = FBSDKLoginBehaviorWeb;
[login logInWithPublishPermissions:@[publish_actions] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    [FBSDKAccessToken setCurrentAccessToken:result.token];
    // ...
}];

另请注意,此问题并非特定于iOS。我们的Android应用程序也看到了相同的东西(直到最近才恢复正常)。

1 个答案:

答案 0 :(得分:35)

我遇到了同样的错误......似乎问题出在您的info.plist网址方案设置中:Facebook SDK: app not registered as a URL Scheme

然而,添加这些会导致应用程序将您发送到实际的Facebook应用程序进行身份验证,而不是在您自己的应用程序中显示登录模式。

**更新**

抱歉,我发言太快了......上述更改将有助于解决问题(或以您不想要的方式改变用户流程),但真正需要发生的事情(这是唯一的事情) ,只是添加了一个" iOS平台" (或其他)到Facebook Developer门户中的应用程序设置。无论如何,这对我来说就是这样。 :)

enter image description here