Facebook SDK 4.x 权限问题 iOS
Posted
技术标签:
【中文标题】Facebook SDK 4.x 权限问题 iOS【英文标题】:Facebook SDK 4.x Permission issue iOS 【发布时间】:2015-04-23 10:24:39 【问题描述】:我正在尝试获取登录用户时间线的 Feed。我有一个登录按钮,我将读取权限传递给该按钮,包括user_posts
。令人惊讶的是,Facebook 没有授予我此权限并忽略它。
代码:
- (void)viewDidLoad
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
self.loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends", @"user_posts"];
self.loginButton.delegate = self;
if([FBSDKAccessToken currentAccessToken])
NSLog(@"Have access token");
NSLog(@"permissions .... %@",[FBSDKAccessToken currentAccessToken].permissions);
[self retrieveFeed];
#pragma mark - Login Delegate
-(void) loginButton:(FBSDKLoginButton *)loginButton didCompleteWithResult:(FBSDKLoginManagerLoginResult *)result error:(NSError *)error
NSLog(@"Login Successfully!!");
NSLog(@"permissions .... %@",[FBSDKAccessToken currentAccessToken].permissions);
[self retrieveFeed];
-(void) loginButtonDidLogOut:(FBSDKLoginButton *)loginButton
#pragma mark - Receive FB Feed
-(void) retrieveFeed
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphpath:@"/me/feed" parameters:nil];
FBSDKGraphRequestConnection *connection = [[FBSDKGraphRequestConnection alloc] init];
[connection addRequest:request completionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
NSLog(@"%@",result);
if(error)
NSLog(@"Some error FEED;;;;;; %@",error.localizedDescription);
];
[connection start];
单击登录按钮时,我会看到以下权限屏幕。 Facebook 忽略了user_posts
权限。
即使我稍后在登录后尝试获得此权限,Facebook 也会告诉我我已经授权应用这样做,即使没有授予这样的权限 !获取新权限的代码为:
-(void) checkForFeedPermission
if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"user_posts"])
NSLog(@"already granted feed access");
[self retrieveFeed];
else
FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
[loginManager logInWithReadPermissions:@[@"user_posts"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
NSLog(@"requesting feed access");
[self retrieveFeed];
];
三天来我一直在努力解决这个问题。请建议我哪里错了?谢谢。
【问题讨论】:
【参考方案1】:我认为user_posts
与Facebook developer documentation for permission 一样,您必须提交您的 Facebook 应用程序以供审核,请参阅我附上明确说明的屏幕截图。
所以你必须提交你的facebook app for login review,然后你可以在 loginTime 设置这个权限
【讨论】:
也就是说,如果没有 facebook 审查,我将无法获得任何许可?? 是的。需要审核的权限一般会在 3 个工作日内审核。某些权限可能需要长达 7 天的时间来审核,并在参考中进行了标记。不需要审核的权限:公开个人资料(默认)权限、应用好友、电子邮件权限。 这不是针对 user_post 的任何权限 在此帮助下更好地提交审核:developers.facebook.com/docs/apps/review/login【参考方案2】:如果您处于开发模式并且尚未准备好发布应用程序以供 facebook 审核,那么执行您想要的最佳方法是使用测试用户。在您的 Facebook 应用仪表板中,转到角色并创建一些测试用户。请注意,它是一个单独的选项卡,而不是第一个选项卡中的测试人员。当您创建测试用户时,您可以默认分配应该分配给该用户的权限。
【讨论】:
以上是关于Facebook SDK 4.x 权限问题 iOS的主要内容,如果未能解决你的问题,请参考以下文章
Facebook 应用邀请在使用 Facebook SDK 4.X 的 iOS8 中不起作用?