最近Facebook的服务器上有些关于他们如何处理登录请求的事情已经发生了变化,因为这曾经完美地工作并突然停止。
(我们正在使用FBSDKLoginManager.loginBehavior = FBSDKLoginBehaviorWeb
,因为我们的应用是如何针对多个品牌(一个代码库,许多应用)进行复制的,以及我们使用原生登录遇到的问题。)
无论如何,当我们尝试向用户呈现登录webview时,我们就会看到这一点(之前它甚至让他们尝试登录):
(未登录:您尚未登录。请登录并重试。)
这是我们用来呈现登录视图的代码:
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应用程序也看到了相同的东西(直到最近才恢复正常)。
答案 0 :(得分:35)
我遇到了同样的错误......似乎问题出在您的info.plist网址方案设置中:Facebook SDK: app not registered as a URL Scheme
然而,添加这些会导致应用程序将您发送到实际的Facebook应用程序进行身份验证,而不是在您自己的应用程序中显示登录模式。
**更新**
抱歉,我发言太快了......上述更改将有助于解决问题(或以您不想要的方式改变用户流程),但真正需要发生的事情(这是唯一的事情) ,只是添加了一个" iOS平台" (或其他)到Facebook Developer门户中的应用程序设置。无论如何,这对我来说就是这样。 :)