验证 Facebook publish_actions 权限时遇到问题

Posted

技术标签:

【中文标题】验证 Facebook publish_actions 权限时遇到问题【英文标题】:Trouble verifying Facebook publish_actions permission 【发布时间】:2015-03-06 17:50:21 【问题描述】:

我已成功登录 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
      
  ];

所以我确定我有权限。但是,每当需要分享时,我的权限检查都会返回 false。我现在将显示我的权限检查

+ (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");
                    ];

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于验证 Facebook publish_actions 权限时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

用户手机号码不通过 Facebook 帐户验证,仅在使用帐户 Facebook 套件时通过短信验证

Facebook iOS SDK 和护照-facebook 身份验证

我可以使用啥密钥来验证 Facebook 登录生成的 Firebase 身份验证令牌

Facebook 聊天 - X-FACEBOOK-PLATFORM 身份验证

在向 Twitter/Facebook 进行身份验证后向 Spring Security 进行身份验证

如何从网站获取 Facebook 身份验证令牌