如何在iOS登录期间请求Facebook publish_actions权限

时间:2015-03-03 04:03:56

标签: ios iphone facebook facebook-graph-api permissions

要在登录android期间请求facebook publish_actions权限我做

loginButton = (LoginButton) view.findViewById(R.id.login_button);
loginButton.setPublishPermissions(“publish_actions”);
loginButton.setUserInfoChangedCallback(new LoginButton.UserInfoChangedCallback() {
    @Override
    public void onUserInfoFetched(GraphUser user) {
        FacebookOptInFragment.this.user = user;
        updateUI();
    }
});

这就是我需要做的所有事情。用户将首先登录,然后被提示授予发布权限。我如何在iOS中做同样的事情?

请注意,我刚刚下载了Facebook SDK,这意味着我拥有最新且最好的(如果相关)。

1 个答案:

答案 0 :(得分:0)

有些documentation首先

  

在登录期间使用publish_actions请求发布权限   在登录UI中创建第二步。所以你应该要求最低限度   登录期间读取权限然后请求任何其他或发布   当某人真正需要它们时的权限。优化你的   权限请求,请参阅优化权限。

因此,如果您只需要授权您的iOS应用并授予publish_actions权限,并且您真的想要与iOS Facebook帐户集成,那么在您要求获得发布权限之前,您必须要求阅读权限。请参阅上面页面链接的Request at Login portion以获取读取权限。

然后,您可以请求publish_actions的其他权限,例如

// Request publish_actions
[FBSession.activeSession requestNewPublishPermissions:[NSArray arrayWithObject:@"publish_actions"]
                                      defaultAudience:FBSessionDefaultAudienceFriends
                                    completionHandler:^(FBSession *session, NSError *error) {
                                      __block NSString *alertText;
                                      __block NSString *alertTitle;
                                      if (!error) {
                                        if ([FBSession.activeSession.permissions 
                                             indexOfObject:@"publish_actions"] == NSNotFound){
                                          // Permission not granted, tell the user we will not publish
                                          alertTitle = @"Permission not granted";
                                          alertText = @"Your action will not be published to Facebook.";
                                          [[[UIAlertView alloc] initWithTitle:alertTitle
                                                          message:alertText
                                                         delegate:self
                                                cancelButtonTitle:@"OK!"
                                                otherButtonTitles:nil] show];
                                        } else {
                                          // Permission granted, publish the OG story
                                          [self publishStory];
                                        }

                                      } else {
                                        // There was an error, handle it
                                        // See https://developers.facebook.com/docs/ios/errors/
                                      }
                                    }];

检查文档的this部分以进行权限管理