Как получить токен доступа явно в API Facebook для iPhone? - PullRequest
2 голосов
/ 18 апреля 2011

Я недавно загрузил демонстрационное приложение Facebook для iPhone.Я сделал несколько попыток понять процесс аутентификации, и я совершенно сбит с толку.Кажется, что есть много примеров кода, который был устаревшим в этой версии API.

В файле .m для моего основного контроллера представления у меня в начале есть следующее:

#import "FBConnect.h"

Кнопка, для которой требуется информация из Facebook, использует эту строку, неизменную из демонстрационного приложения:

[_facebook requestWithGraphPath:@"me" andDelegate:self]; 

Это вызывает следующий метод:

- (void)request:(FBRequest *)request didLoad:(id)result {

У меня естьвзломал мою функциональность в этот метод.Я извлекаю из Facebook несколько вещей, которые мне нужны, и отправляю их на сервер с помощью команды HTTP POST.Например, [result objectForKey: @ "id"] возвращает идентификатор, а [result objectForKey: @ "name"] возвращает имя.Однако [result objectForKey: @ "access_token"] ничего не возвращает.Это очень расстраивает, потому что мне нужно передать токен доступа моему бэкэнду управления пользователями в Google App Engine, чтобы создать нового пользователя.Так что, надеюсь, код, который я включил, проясняет мою стратегию аутентификации (что бы это ни было).Кто-нибудь знает, как я могу получить токен доступа в этом контексте?Буду признателен, если вы поможете мне с тем, какие заголовочные файлы мне нужно включить и т. Д.?

Спасибо,

Джон

Ответы [ 2 ]

3 голосов
/ 18 апреля 2011

Я делаю то же самое, что и вы. Я делаю свои собственные HTTP-запросы, поэтому мне нужен accessToken, и более того, iOS Facebook SDK не запоминает прошлые запуски accessToken, даже с запросом без истечения срока действия!

После вызова [_facebook authorize: делегат прав: self]; В вызове делегата fbDidLogin вы можете легко получить (если у вас есть объект facebook, сохраненный в _facebook):

- (void)fbDidLogin {
NSString *accessToken = _facebook.accessToken;
NSDate *expirationDate = _facebook.expirationDate;
}

Вуаля.

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

1 голос
/ 13 декабря 2013

после успешного полного входа в систему вы можете получить с помощью,

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