2

我正在尝试验证我是否有publish_actions权限。总是假的。即使我请求并获得 apublish_actions和 get 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"];
4

2 回答 2

2

在 Parse sdk 版本 1.7.3 中解决。

于 2015-05-20T00:49:27.367 回答
0

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

于 2015-05-20T01:39:21.500 回答