Использование токена доступа к приложению в IOS - PullRequest
13 голосов
/ 05 июня 2011

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

Как читается в документации, я могу использовать токен доступа к приложению, чтобы я мог получать сообщения, не спрашивая у пользователя разрешения.Но поскольку я понятия не имею, как это работает, а в документации на Facebook не приводится пример того, как реализовать это на IOS, я хочу попросить вас о помощи!

У кого-нибудь есть пример того, как мне это нужно?реализовать это в моем коде?Спасибо заранее !!

Ответы [ 2 ]

10 голосов
/ 06 июня 2011

Я не уверен, что это то, что вы ищете, но если вы пытаетесь сделать что-то простое, например, получить публичные сообщения пользователя, вы можете сделать это так.

Используйте следующий запрос для получения токена:

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials

Полагаю, у вас есть идентификатор приложения и секрет, поскольку вы уже получили токен. В любом случае, токен будет возвращен в ответе так:

access_token=ACCESS_TOKEN

Разобрать токен: и поместить его в следующий запрос:

* * 1010

Вы можете использовать следующий код для разбора токена:

    NSRange access_token_range = [responseString rangeOfString:@"access_token="];
    if (access_token_range.length > 0) {
        int from_index = access_token_range.location + access_token_range.length;
        NSString *access_token = [responseString substringFromIndex:from_index];

        NSLog(@"access_token:  %@", access_token);
    }

РЕДАКТИРОВАТЬ: URL-адрес получить сообщения даст BadURL из-за незаконных символов. Вы можете сделать это, чтобы исправить это:

NSString *encodedURLString = [yourUrlString stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding];    
NSURL *url = [NSURL URLWithString:encodedURLString];

Я не использую Facebook SDK, поэтому я не знаю, как он работает, но я думаю, что вы должны сделать что-то вроде этого:

[_facebook requestWithGraphPath:@"[user_id]/feed" 
                  andParams:[NSMutableDictionary dictionaryWithObject:ACCESS_TOKEN forKey:@"access_token"]
              andHttpMethod:@"GET"
                andDelegate:self];
0 голосов
/ 02 сентября 2011

Несмотря на то, что вы можете сделать это, в документации API говорится:

Вход в приложение позволяет выполнять различные административные действия для вашего приложения, такие как получение данных Insights или утверждение запросов.Вызовы API Graph, для которых требуется токен доступа к приложению, четко обозначены в справочнике по API. "

Я думаю, что это может быть угрозой безопасности, поскольку кто-то может перехватить ваш токен доступа к приложению и выполнить все эти действия черезAPI. Не говоря уже о том, что client_secret (который по сути является паролем для вашего приложения) встроен в приложение iOS. Я думаю, что логины приложений больше подходят для использования PHP-серверами.

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