Ошибка Facebook API для iPhone: необходимо использовать токен активного доступа

#iphone #facebook #api

#iPhone #Facebook #API

Вопрос:

Я пытаюсь восстановить своих друзей в Сети и получаю эту ошибку: «Для запроса информации о текущем пользователе необходимо использовать токен активного доступа».

Это мой метод:`-(IBAction)act:(id) отправитель{

 NSArray* permissions =  [[NSArray arrayWithObjects:
                          @"user_online_presence", @"friends_online_presence", nil] retain];

[facebook authorize:permissions delegate:self];
[facebook requestWithGraphPath:@"me/friends" andDelegate:self];     

NSLog(@"dd");
NSLog(@"%@",facebook.accessToken);
  

}
`
Что я здесь делаю не так?

Ответ №1:

вы не ожидаете завершения авторизации.

Вам нужно будет реализовать метод делегирования didLogin и

[facebook requestWithGraphPath:@»я / друзья» и DELEGATE:self];

должен запускаться только после вызова didLogin.

Комментарии:

1. какова структура didlogin? например, для didfailwitherror это: — (void) запрос: (FBRequest *) запрос didFailWithError:(id) результат {

2. -(недействительный)fbDidLogin; И это на Facebook Sessiondelegate (который также находится в Facebook.h)

3. Я пробовал этот на my .m, но не работает! Я использую последнюю версию FBConnect. -(недействительный)fbDidLogin{ [facebook requestWithGraphPath:@»me / friends» andDelegate:self]; NSLog (@»сделал вход»); }

4. Это работает для меня, оглядываясь назад на ваш код, вы используете [facebook authorize: делегат разрешений: self] в моем коде у меня есть [facebook authorize: my_facebook_app_id permissions: делегат разрешений: self] Предоставляете ли вы свой facebook app id в другом месте?

5. Да! Всплывающее окно спрашивает меня, хочу ли я авторизоваться и бла-бла-бла. Все работает нормально, кроме этого! Вот мой идентификатор приложения: — (void)viewDidLoad { [super viewDidLoad]; facebook = [[Facebook alloc] initWithAppId:@»xxxxxxxx»]; [facebook авторизовать: ноль делегировать: самостоятельно];