iphone - iOS Facebook SDK 3.1 登录时添加权限

标签 iphone objective-c ios xcode facebook

我正在尝试遵循 Facebook SDK 3.1 教程:Scrumptious 并将 FB 集成到我的应用中。

- (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {

NSArray *permissions = @[@"email"];

return [FBSession openActiveSessionWithReadPermissions:permissions
                                          allowLoginUI:allowLoginUI
                                     completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
                                         [self sessionStateChanged:session state:state error:error];
                                     }];

我想添加额外的权限,但是它只显示身份验证中的基本信息,如下图:

screenshot

我也使用过时的方法,得到了相同的结果:

[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
    [self sessionStateChanged:session state:state error:error];
}];

我从 here 找到了临时解决方案通过在其他地方使用 reauthorizeWithPublishPermissions。用户必须登录 facebook 两次才能阅读用户电子邮件。

有什么解决方案可以一次完成吗?

感谢您的帮助!

编辑:另一个 post在 stackoverflow 上,使用 openActiveSessionWithPublishPermissions,仍然得到与屏幕截图相同的结果。

最佳答案

根据Facebook FBSession Reference ,作为最佳实践,您应该在打开 session 时请求读取权限。然后在需要时请求额外的权限。

It is required that initial permissions requests represent read-only permissions only.

其次,我尝试了下面的这段代码,我得到了正确的权限要求。

NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];

[FBSession openActiveSessionWithReadPermissions:permissions
                                   allowLoginUI:YES
                              completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
 [self sessionStateChanged:session state:state error:error];}];
 [permissions release];

希望这对您有所帮助。

关于iphone - iOS Facebook SDK 3.1 登录时添加权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12955635/

相关文章:

iphone - 应用在应用商店上崩溃,而不是本地版本

iphone - 使用平移手势,单次触摸后忽略触摸?

iphone - 辞职第一响应者 UITextView

objective-c - 如何避免总是创建 UINavigationControllers?

ios - 仅 Retina 平板电脑和 iPad 媒体查询

iphone - 模态视图中的导航 Controller ?

iphone - 使用 MacRuby 开发 iPhone 应用程序

ios - 在页面 View Controller 中以编程方式使用 Storyboard 中的 View Controller

ios - 如何删除默认的后退导航按钮

ios - UITableViewCell 重复显示 "Label"