NEST API AUTH ERROR - код авторизации не найден/ios

Вот код, использующий obj-c. Я получаю сообщение об ошибке «код авторизации не найден», но не могу ее решить. я попробовал пару альтернатив

Ошибка: {"error":"oauth2_error","error_description":"код авторизации не найден"}

Случай 1: NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:@"https://api.home.nest.com/oauth2/access_token?code=%@&client_id=xxx&client_secret=xxx&grant_type=authorization_code,код]];

 NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
 [request setHTTPMethod:@"POST"];

 [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];

 NSError *error;



 NSURLResponse *response;

  NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

Случай 2: NSString *post = [NSString stringWithFormat:@"client_id=xxx&client_secret=xxx&grant_type=authorization_code&code=%@", code];

NSLog(@"Post -%@",post);

NSData * postData = [post dataUsingEncoding:NSUTF8StringEncoding]; //tried ascii too

NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];


NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:@"https://api.home.nest.com/oauth2/access_token"]];

NSLog(@"url-%@",url);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];

NSError *error;
NSURLResponse *response;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

Мои шаги: 1. Использовал LHOAuth2LoginViewController 2. Открывает веб-просмотр 3. Пользователь вводит адрес электронной почты/пароль для входа в Nest 4. Предлагается «Работает с Nest» 5. Пользователь «Принимает» 6. Перенаправляется на локальный хост 7. Перехватывается для получения «Код авторизации " 8. Используйте NSUrlConnection для передачи кода аутентификации для получения токена аутентификации 9. Получение ошибки oauth2_error: "код авторизации не найден"


person user3777689    schedule 11.07.2014    source источник
comment
Не могли бы вы отправить параметры запроса в теле сообщения и повторить запрос?   -  person Nagesh Susarla    schedule 12.07.2014
comment
я тоже так пробовал..   -  person user3777689    schedule 12.07.2014


Ответы (1)


Взгляните на пример проекта iOS-NestDK на веб-сайте Nest для разработчиков. В частности, взгляните на файл NestAuthManager и не стесняйтесь использовать его в своем проекте.

Привет, Рэймонд

person Raymond George Kennedy    schedule 23.07.2014
comment
Образец не помогает. Я получаю ту же ошибку при запуске примера: Ошибка при получении кода авторизации - person progrmr; 23.11.2014