![](/img/trans.png)
[英]How to “rerequest” email permission using Facebook iOS SDK 4.x?
[英]Facebook SDK 4.x Permission issue iOS
我正在尝试为登录用户的时间线获取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];
}];
}
}
我已经在这个问题上敲了三天。 请建议我哪里可以出错? 谢谢。
我认为不适用于授予user_posts
作为Facebook开发者文档的权限,你必须提交你的Facebook应用程序进行审查,请参阅我附上的截图,清楚地说。
因此,您必须提交您的Facebook应用程序进行登录审核,然后您才能在loginTime设置此权限
如果您处于开发模式但尚未准备好发布应用以进行Facebook审核,那么最好的方法就是使用测试用户。 在您的Facebook应用程序仪表板中,转到角色并创建一些测试用户。 请注意,它是一个单独的选项卡,而不是第一个选项卡中的Testers。 创建测试用户时,您可以默认分配应为该用户分配的权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.