无法验证 Facebook publish_actions 权限

Trouble verifying Facebook publish_actions permission

我已成功登录 Facebook 并请求 publish_actions 许可。已授予权限,因为我可以很容易地在 https://www.facebook.com/settings?tab=applications 上验证,也可以通过调用

-(void) whatPermissionsDoIHave
{
  [FBRequestConnection startWithGraphPath:@"/me/permissions"
    completionHandler:^(
      FBRequestConnection *connection,
      NSDictionary* result,
      NSError *error
    ) {
       //do checks in here
      }
  }];
}

所以我确定我得到了许可。但是,每当需要分享时,我的权限检查 returns 为假。我现在将显示我的权限检查

+ (BOOL)hasWritePermissions
{
    if (!FBSession.activeSession.isOpen) return NO;
    NSLog(@"So the session is at least open");
    return [FBSession.activeSession.permissions indexOfObject:@[@"publish_actions"]] != NSNotFound;
}

所以我还漏掉了什么吗?也许我应该在 AppDelegate 中做些什么?感谢您的任何见解。

现在我在 AppDelegate 中唯一的调用是

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {
    // attempt to extract a token from the url
    return [FBAppCall handleOpenURL:url
                  sourceApplication:sourceApplication
                    fallbackHandler:^(FBAppCall *call) {
                        NSLog(@"In fallback handler");
                    }];
}

权限属性是一个字符串数组,但你在另一个数组上调用indexOfObject,这可能就是它找不到它的原因。试试这个:

return [FBSession.activeSession.permissions indexOfObject:@"publish_actions"] != NSNotFound;