iOS Facebook SDK 3.1在login时添加权限
我正在尝试按照Facebook SDK 3.1教程:美味,并将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]; }];
我想添加额外的权限,但它只显示身份validation中的基本信息,如下图所示:
我也使用了不推荐的方法,我得到了相同的结果:
[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) { [self sessionStateChanged:session state:state error:error]; }];
我通过在其他地方使用reauthorizeWithPublishPermissions
从这里find临时解决scheme。 用户必须login到脸书两次阅读用户的电子邮件。
有什么解决办法可以一次完成吗?
感谢您的帮助!
编辑:使用openActiveSessionWithPublishPermissions
,在stackoverflow上的另一篇文章 ,仍然有截图相同的结果。
我会在Facebook应用程序的权限设置中检查Facebook.com上的权限,并确保它们匹配。 我相信他们说你可以在你的iOS代码中设置权限,但我build议在FB应用程序设置中匹配权限。
根据Facebook的FBSession参考 ,作为一个最佳实践,您应该在开会时要求阅读权限。 然后在需要时再请求额外的权限。
要求初始权限请求仅表示只读权限。
其次,我试了下面的代码,我得到了正确的权限要求。
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];
希望这可以帮助。
http://developers.facebook.com/docs/reference/login/#permissions
这是一个如何使用它们的例子
NSArray *permissions = [[NSArray alloc] initWithObjects:@"publish_stream", @"email", nil]; [facebook authorize:permissions]; [permissions release];
- 在iOS中集成Facebook SDK
- Facebook iOS SDK没有调用完成处理程序
- Parse.com是否有可能login使用Facebook,同时检查Facebook用户的电子邮件是否存在于用户parsing,如果它链接两者?
- ios Facebook Graph API – 发布audio文件
- 从我的主应用程序Swift中打开另一个(我的)应用程序
- 如何在不使用redirectSafari浏览器的iOS应用程序中集成Facebook与最新的FBSDK
- Facebookgraphics对象/实体parsingSwift中的SDK 4
- iOS开发:我怎样才能得到一个Facebook的墙上post显示在朋友的新闻提要?
- 如何在我的iOS应用程序中embeddedYouTube或Facebook直播?