我正在尝试为登录用户的时间轴获取 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];
}];
}
}
我一直在这个问题上敲了三天。请建议我哪里可以出错?感谢。
答案 0 :(得分:1)
我认为不能使用user_posts
作为标准Facebook developer documentation for permission,您必须提交您的Facebook应用以供审核,请参阅我附上明确说明的屏幕截图。
所以你必须提交你的facebook app for login review,然后你可以在loginTime设置这个权限
答案 1 :(得分:0)
如果您处于开发模式但尚未准备好发布应用以进行Facebook审核,那么最好的方法就是使用测试用户。在您的Facebook应用程序仪表板中,转到角色并创建一些测试用户。请注意,它是一个单独的选项卡,而不是第一个选项卡中的Testers。创建测试用户时,您可以默认指定应为该用户分配的权限。