Как проверить, предоставил ли пользователь определенное разрешение Facebook iOS - PullRequest
1 голос
/ 01 марта 2012

В моем приложении для 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 ]

3 голосов
/ 17 апреля 2013

Вот рабочий пример, который я сделал для 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");
      }];
3 голосов
/ 01 марта 2012

Вы можете сделать FBRequest с открытым графом API с «я / разрешения». Он вернет вам ответ со словарем, ключом которого являются разрешения. значение будет связано (1 = ДА, 0 = НЕТ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...