如何检查用户是否已授予Facebook iOS某些权限

时间:2012-03-01 15:11:56

标签: iphone objective-c ios xcode facebook-graph-api

在我的iOS应用中,我只想检查用户是否已授予Facebook publish_stream权限。

我不确定如何处理对通话的响应

[facebook requestWithGraphPath:@"me/permissions" andDelegate:self];

在我的FBRequest委托方法中。我试过了:

if (request == self.permissionRequest) {
        NSString *key = [result objectForKey:@"publish_stream"];
        DLog(@"Key: %@", key);
    }

但我得到了空。

如果我尝试

    id *key = [result objectForKey:@"publish_stream"];
int keyInt = [key integerValue];
DLog(@"Key: %i", keyInt);

我总是得到0.即使我知道许可是有效的......

2 个答案:

答案 0 :(得分:3)

您可以使用带有“me / permissions”的开放图形API创建FBRequest。 它会返回一个带有字典的响应,其中键是权限。值将关联(1 =是,0 =否)

答案 1 :(得分:3)

这是我为create_events做的一个工作示例。当然可以用于其他人:

FBRequest *eventPostOK = [FBRequest requestWithGraphPath:@"me/permissions" parameters:Nil HTTPMethod:@"GET"];
[eventPostOK startWithCompletionHandler: ^(FBRequestConnection *connection,
NSDictionary* result,
NSError *error) {
      BOOL canDoIt = FALSE;
      if (!error)
      {
         FBGraphObject *data = [result objectForKey:@"data"];
         for(NSDictionary<FBGraphObject> *aKey in data) {
             canDoIt = [[aKey objectForKey:@"create_event"] boolValue];
             }
      }
      else
         NSLog(@"%@", error);

      NSLog(@"%@", canDoIt ? @"I can create Events" : @"I can't create Events");
      }];