"[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]" 总是返回 fal

Posted

技术标签:

【中文标题】"[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]" 总是返回 false【英文标题】:"[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]" always return false 【发布时间】:2015-05-09 17:36:54 【问题描述】:

我正在尝试验证我是否拥有publish_actions 权限。总是假的。即使我请求并获得publish_actions 并获得succeeded=TRUE,重新验证仍然返回false。

有什么想法吗?

bool bGranted_publish_actions=[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"];

bool bGranted_user_photos=[[FBSDKAccessToken currentAccessToken] hasGranted:@"user_photos"];

if (!bGranted_user_photos || !bGranted_publish_actions )
    [PFFacebookUtils linkUserInBackground:[PFUser currentUser] withPublishPermissions:@[@"publish_actions"] block:^(BOOL succeeded, NSError *error) 

        if (succeeded) 
            bool bGranted_publish_actionsV2=[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"];

【问题讨论】:

在这里也一样。 @Franck 你找到解决方案了吗? 仍然没有解决办法。 :( 我在developers.facebook.com/bugs/713281905449321 上发布了一个错误报告。我可以建议您发布回复以确认您也复制吗?!它可以帮助:) Parse sdk version 1.7.3版本解决。 【参考方案1】:

在 Parse sdk 版本 1.7.3 版本中解决。

【讨论】:

【参考方案2】:

Franck 在上面的评论中提供的链接表明这是一个 Facebook 错误。等待下一个版本。

同时,这里有一个解决方法。

解决方法

在对当前访问令牌调用刷新后保留一组权限。您可以将它们保存在AppDelegate 或仅在处理 facebook 的类中。

[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) 
        NSDictionary *resultDictionary = (NSDictionary *) result;
        NSArray *permissionsArray= [resultDictionary objectForKey:@"data"];
        NSMutableSet *permissionsSet = [NSMutableSet new];

        for (NSDictionary *permissionDic in permissionsArray) 
            if ([[permissionDic objectForKey:@"status"] caseInsensitiveCompare:@"granted"] == NSOrderedSame) 
                [permissionsSet addObject:[permissionDic objectForKey:@"permission"]];
            
        
        blockSelf.permissions = permissionsSet;
    ];

注意 - blockSelf.permissions 是调用刷新的对象上的 NSSet 属性。

【讨论】:

以上是关于"[[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]" 总是返回 fal的主要内容,如果未能解决你的问题,请参考以下文章

ios Facebook 登录 - FBSDKAccessToken 为零

无法在 swift 3 / FBSDK 4.17 中正确检索 FBSDKAccessToken 当前令牌

斯威夫特:我必须调用 Facebook 登录按钮两次才能获得 FBSDKAccessToken

无法通过 iphone sdk 中的 [FBSDKAccessToken currentAccessToken] 获取访问令牌

快速转场不起作用?

Swift:处理 Facebook 令牌错误