2

Я видел this post, в котором описывается, как использовать график api для проверки разрешений пользователя, однако я не уверен, как проверить конкретное разрешение.Проверить права доступа в Facebook на iOS

Вызов [facebook requestWithGraphPath:@"me/permissions" andDelegate:self]; вызывает метод делегата - (void)request:(FBRequest *)request didLoad:(id)result, но как лучше всего обрабатывать ответ? У меня уже есть два блока в этом делетете, которые обрабатывают другие типы запросов, в частности, вызывая if ([result isKindOfClass:[NSArray class]]) и if ([result isKindOfClass:[NSDictionary class]]) Предположительно, FBRequest для разрешений также является массивом, поэтому как я могу отличить его от других массивов FBRequest? И как только у меня есть массив, как я могу проверить конкретное разрешение - в моем случае publish_stream.

Кроме того, это самый быстрый способ сделать это? Я хочу проверить, активно ли это разрешение, а если нет, попросите пользователя снова войти в систему. В настоящее время я проверяю, требуется ли проверка сеанса, вызвав if (![facebook isSessionValid]), чтобы я мог изменить его на if (![facebook isSessionValid] || ![self checkPermissions], но для этого потребуется полный запрос.

ответ

2
  1. Для вашего первого вопроса попробуйте использовать другой делегат для этой цели только (то есть создать класс, который реализует FBRequestDelegateprotocol и реализовать требуемый метод запроса) и передать этот делегат на вызов запроса граф.

  2. Вы можете попробовать выполнить итерацию массива и найти соответствие требуемым разрешениям.

+0

Внедрение целого нового класса действительно необходимо ??? Почему я не могу сделать это в одном классе? И когда вы говорите, что находите соответствие требуемым разрешениям, означает ли это, что если разрешение было предоставлено, оно просто существует как строка внутри массива? – Smikey

+0

Это необходимо, если вы хотите, чтобы ваш код был чище. Вы сами сказали, что у вас уже есть два блока, обрабатывающих каждый запрос, и только добавление большего количества раздувается, вы запрашиваете метод обработки. – giorashc

Смежные вопросы