FBLoginView 拒绝某些用户

Posted

技术标签:

【中文标题】FBLoginView 拒绝某些用户【英文标题】:FBLoginView rejects some users 【发布时间】:2013-04-24 09:23:14 【问题描述】:

我在我的项目中使用最新的 Facebook ios SDK。我已经按照他们自己的指南使用 FBLoginView 成功实现了 Facebook 登录: https://developers.facebook.com/ios/login-ui-control/

这适用于大多数人,但是有些人遇到无法登录的问题 - 收到一条错误消息,提示他们需要接受所需的权限才能登录。即使他们明确接受这些权限!

我使用与上述链接(靠近页面底部)的示例相同的错误处理,并且似乎触发了 FBErrorCategoryUserCancelled 类型的错误。

我无法在模拟器或 iPhone 上模拟我的任何 Facebook 帐户的错误。然而,很多人都在遇到这个问题,但没有任何重要的共同点。我该怎么办?

4 月 24 日更新

我的WelcomeViewController 是处理 Facebook 登录的视图。在.m 文件中,我有以下用于处理权限的代码:

- (void)viewDidLoad
    
    [super viewDidLoad];

    // Facebook login permissions
    loginView.readPermissions = @[@"email"];
    loginView.publishPermissions = @[@"publish_actions"];
    loginView.defaultAudience = FBSessionDefaultAudienceFriends;


4 月 24 日更新第 2 部分

在我的测试人员的帮助下,我已经定位了问题。遇到登录问题的每个人都已将 Facebook 与 iOS 集成 - 也就是说,他们在 iOS 上使用 Facebook 登录(在设置 -> Facebook 下)。一旦禁用 - 他们就可以登录。这是 SDK 中的错误还是我该如何处理?

【问题讨论】:

这是您的测试用户还是该应用已在应用商店中?您是否在他们首次使用您的应用程序登录后添加了新的权限请求?可能他们应该从设备中删除您的应用程序,重新加载新版本并且它应该可以工作。可能还需要重置设备。 幸运的是这些用户是测试用户。以前从未安装过该应用程序的用户。我只在应用程序中的某一点请求权限 - 在登录它们的视图上。我将使用我的代码更新我的帖子。我正在使用大约 20 个测试用户进行测试,其中 2-3 个遇到了这个问题。删除应用程序并重新加载新版本似乎不是一种选择,因为我需要知道如何在启动时避免这种情况。 作为旁注:当用户第一次尝试发布某些内容时,您应该要求“publish_actions”。不在登录时。但这与你的问题无关...... 感谢您的推荐。检查我的更新 - 我想我现在已经缩小了很多。 非常好。我只是设法解决它。我将我的发布权限请求移动到另一个视图,现在它可以工作了。非常感谢您引导我朝着正确的方向前进!随时发布答案。 【参考方案1】:

在 facebook. 的应用程序设置中将沙盒模式设置为已禁用

【讨论】:

【参考方案2】:

如accepted answer to a question with a similiar problem 中所述,您应该 仅在登录时请求读取权限。

另请参阅iOS 6 Integration 文档。

仅当用户实际尝试发布某些内容时才应请求发布权限 - 这也带来了更好的用户体验(这样用户不会感觉到您的应用 将以他的名义自行出版。

【讨论】:

以上是关于FBLoginView 拒绝某些用户的主要内容,如果未能解决你的问题,请参考以下文章

不再调用 FBLoginView 委托方法

在 Storyboard 中执行 FBLoginView 后如何转换到另一个视图?

当用户拒绝权限时,某些设备上的 onRequestPermissionsResult grantResults 返回空

如何从 FBLoginView 获取头像?

Magnolia CMS 5.5.5 拒绝访问某些 dam-Files

FBLoginView 文本只有英文