EES*_*EES 3 iphone xcode facebook objective-c ios
我试图遵循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];
}];
Run Code Online (Sandbox Code Playgroud)
我想添加额外的权限,但它只在身份验证中显示基本信息,如下图所示:

我也使用了弃用的方法,我得到了相同的结果:
[FBSession openActiveSessionWithPermissions:permissions allowLoginUI:allowLoginUI completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
[self sessionStateChanged:session state:state error:error];
}];
Run Code Online (Sandbox Code Playgroud)
我发现,从临时的解决方案在这里通过使用reauthorizeWithPublishPermissions在别的地方.用户必须登录Facebook两次才能阅读用户电子邮件.
有什么解决方案可以一次完成吗?
谢谢你的帮助!
编辑:stackoverflow上的另一篇文章,使用openActiveSessionWithPublishPermissions,仍然与截图相同的结果.
根据Facebook FBSession Reference,作为最佳实践,您应该在打开会话时询问读取权限.然后在您需要时请求其他权限.
初始权限请求仅表示只读权限.
其次,我尝试了下面的代码,并获得了正确的权限要求.
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];
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
10724 次 |
| 最近记录: |