Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何检查用户是否已授予Facebook iOS特定权限_Iphone_Objective C_Ios_Xcode_Facebook Graph Api - Fatal编程技术网

Iphone 如何检查用户是否已授予Facebook iOS特定权限

Iphone 如何检查用户是否已授予Facebook iOS特定权限,iphone,objective-c,ios,xcode,facebook-graph-api,Iphone,Objective C,Ios,Xcode,Facebook Graph Api,在我的iOS应用程序中,我只想检查用户是否已授予Facebook发布流权限 我不知道如何处理对电话的回应 [facebook requestWithGraphPath:@"me/permissions" andDelegate:self]; 在我的FBRequest委托方法中。我试过: if (request == self.permissionRequest) { NSString *key = [result objectForKey:@"publish_stream"];

在我的iOS应用程序中,我只想检查用户是否已授予Facebook发布流权限

我不知道如何处理对电话的回应

[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分。即使我知道权限处于活动状态

您可以使用具有me/权限的open graph API发出FBI请求。
它将返回一个带有字典的响应,其中键是权限。一个值将与1=YES,0=NO相关联

您可以使用具有me/权限的open graph API发出FBRequest。
它将返回一个带有字典的响应,其中键是权限。一个值将与1=YES,0=NO相关联

这是我为create\u事件所做的一个工作示例。当然,它也可以用于其他人:

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

这是我为create_事件所做的一个工作示例。当然,它也可以用于其他人:

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

这真的是最快的方法吗?因为我想在检查当前会话是否有效的同时进行此测试,并且需要几秒钟。。。我想我可以试着提前做测试…我认为这是最好的方法。。。但是,如果这是您的问题,那么就没有SDK方法可以这样做……我已经尝试了id key=[result objectForKey:@publish_stream];DLog@Key:%@,键;但是“key”为null?将其转换为int总是返回0。。。我处理错了吗?如果您有疑问,请打印所有键,但通常情况下,FBRequest会返回类似{data={//some data}的字典,这确实是最快的方法?因为我想在检查当前会话是否有效的同时进行此测试,并且需要几秒钟。。。我想我可以试着提前做测试…我认为这是最好的方法。。。但是,如果这是您的问题,那么就没有SDK方法可以这样做……我已经尝试了id key=[result objectForKey:@publish_stream];DLog@Key:%@,键;但是“key”为null?将其转换为int总是返回0。。。我处理错了吗?如果您有疑问,请打印所有键,但通常FBRequest会返回类似{data={//some data}的字典