Facebook SDK 4.0:要求发布

我使用FBSDKLoginButton在我的应用程序中通过Facebook登录。 那么我将readPermissions定义为;

NSArray *permissions = [NSArray arrayWithObjects:@"public_profile", @"email",nil];
self.loginFbBtn.readPermissions = permissions;

以上都很好。 但是现在,如果我需要向我的时间表请求权限并希望获得“ publish_actions ”权限,是否有办法在不实际激发FBSDKLoginManager的情况下询问这些权限 ,因为这是Facebook文档中给出的唯一方法:

if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) {
  // TODO: publish content.
} else {
  FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init];
  [loginManager logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
    //TODO: process error or result.
  }];
}

显然这是您可以为您的应用程序调用“ publish_actions ”的唯一方法。 我想在没有FBSDKLoginManager的情况下使用它。 请帮助,我需要这个滚动。

所以这是更新:

在Wizkid和MingLi的帮助下,我最终通过FBSDKLoginManager实现了它,以下代码段用于通过自定义按钮及其@selector(facebookLogin)进行Facebook登录,然后在通过方法getSharingPermissions需要共享时调用共享权限:

-(void) facebookLogin
{
    @try
    {
        self.loginManager = [[FBSDKLoginManager alloc] init];
        [self.loginManager setLoginBehavior:FBSDKLoginBehaviorWeb];
        [self.loginManager logInWithReadPermissions:@[@"public_profile",@"email"] handler:^(FBSDKLoginManagerLoginResult *result,NSError *error)
        {
            if([FBSDKAccessToken currentAccessToken])
            {
                [[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil]
                 startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error)
                 {
                     if (!error)
                     {
                         NSLog(@"fetched user:%@", result);
                         NSDictionary *userDict = (NSDictionary*)result;
                     }
                 }];
            }}];
    }
}
@catch (NSException *exception)
{
    NSLog(@"Exception %@", exception);
}

获取共享权限:

-(void)getSharePermissions
{
    if (![[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"])
    {
        [self.loginManager setLoginBehavior:FBSDKLoginBehaviorWeb];
        [self.loginManager logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error)
        {
            if ([result.grantedPermissions containsObject:@"publish_actions"])
            {

            }}];
    }
}

所以错误是我再次获取登录页面,并且在getSharingPermissions时再次询问用户凭证。 请帮忙。 提前致谢。

链接地址: http://www.djcxy.com/p/83143.html

上一篇: Facebook SDK 4.0: Asking publish

下一篇: action permission only for pages and not for user timeline