为什么 iOS Facebook 应用程序显示旧的登录流程,而 Safari 显示新的?
Why does the iOS Facebook app show the old login flow, while Safari shows the new one?
我们正在更新应用以使用新的 Facebook iOS SDK (4.0.1),以支持从 2015 年 5 月 1 日起强制执行的登录更改。
我们使用设置为 FBSDKLoginBehaviorNative
的登录行为调用登录屏幕:
[self.loginManager logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
completion(nil, error);
}
else if (result.isCancelled) {
completion(nil, nil);
}
else {
completion(result.token.tokenString, nil);
}
}];
虽然我们得到了一个奇怪的结果。在设备上安装了 Facebook iOS 应用程序并作为我们的 Facebook 应用程序测试用户之一登录后,我们看到了旧的登录屏幕(无法拒绝特定权限,并要求 friend_list
已弃用的权限) :
没有安装 Facebook iOS 应用程序,我们得到预期的新登录屏幕:
什么给了?
设备详细信息:iPhone4S,iOS8.1,FB 应用程序 v28.0(2015 年 4 月 13 日)。
我们已经确认这是 iOS 的 Facebook SDK 4.0 版中引入的意外回归,我们有一个修复程序将在 SDK 的下一次更新中发布。修复后,用户将看到相同版本的登录对话框,无论他们是在 Safari 中还是在 Facebook 应用程序中查看它。
请注意,一旦应用程序已迁移到使用 Graph API 的 2.0 版(post-4 月 30 日),用户应该会在这两种情况下看到新版本的登录对话框,有或没有 SDK 的修复,所以这种差异应该只是一个短时间的问题。 (如果您在这种情况下继续看到异常行为,请报告。)
抱歉造成混淆!
我们正在更新应用以使用新的 Facebook iOS SDK (4.0.1),以支持从 2015 年 5 月 1 日起强制执行的登录更改。
我们使用设置为 FBSDKLoginBehaviorNative
的登录行为调用登录屏幕:
[self.loginManager logInWithReadPermissions:@[@"email"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
completion(nil, error);
}
else if (result.isCancelled) {
completion(nil, nil);
}
else {
completion(result.token.tokenString, nil);
}
}];
虽然我们得到了一个奇怪的结果。在设备上安装了 Facebook iOS 应用程序并作为我们的 Facebook 应用程序测试用户之一登录后,我们看到了旧的登录屏幕(无法拒绝特定权限,并要求 friend_list
已弃用的权限) :
没有安装 Facebook iOS 应用程序,我们得到预期的新登录屏幕:
什么给了?
设备详细信息:iPhone4S,iOS8.1,FB 应用程序 v28.0(2015 年 4 月 13 日)。
我们已经确认这是 iOS 的 Facebook SDK 4.0 版中引入的意外回归,我们有一个修复程序将在 SDK 的下一次更新中发布。修复后,用户将看到相同版本的登录对话框,无论他们是在 Safari 中还是在 Facebook 应用程序中查看它。
请注意,一旦应用程序已迁移到使用 Graph API 的 2.0 版(post-4 月 30 日),用户应该会在这两种情况下看到新版本的登录对话框,有或没有 SDK 的修复,所以这种差异应该只是一个短时间的问题。 (如果您在这种情况下继续看到异常行为,请报告。)
抱歉造成混淆!