Fitbit и OAuth 2.0
Я пытаюсь добавить fitbit интеграцию в приложение для iOS. Я удивлен, обнаружив, насколько это сложно... Я представлял, что будет iOS SDK.
В любом случае я пытаюсь получить данные через веб-интерфейс API. Он использует OAuth 1 & 2.
Я пробовал оба, но добился большего прогресса с OAuth 2.0.
В настоящее время я использую AFOAuth2Manager для подключения. К сожалению, это не работает хорошо.
Используя демонстрационный код с моей учетной записью, я получаю следующую ошибку:
Запрос не выполнен: недопустимый тип содержимого: text/html
Добавляя:
OAuth2Manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
Эта ошибка исчезает, но появляется новая:
Текст JSON не начинался с массива или объекта и опции, позволяющей не устанавливать фрагменты.
Вот код, который я использую для запроса:
AFOAuth2Manager *OAuth2Manager =
[[AFOAuth2Manager alloc] initWithBaseURL:baseURL
clientID:@"CLIENT_ID"
secret:@"CLIENT_SECRET"];
OAuth2Manager.responseSerializer.acceptableContentTypes = [NSSet setWithObject:@"text/html"];
[OAuth2Manager authenticateUsingOAuthWithURLString:@"/oauth2/authorize"
username:USER_NAME
password:USER_PASSWORD
scope:@"activity"
success: ^(AFOAuthCredential *credential) {
NSLog(@"Token: %@", credential.accessToken);
}
failure: ^(NSError *error) {
NSLog(@"Error: %@", error);
}];
Я хотел попробовать добавить NSJSONReadingAllowFragments. Но не смогли получить это в код без ошибок.
//OAuth2Manager.responseSerializer.readingOptions = NSJSONReadingAllowFragments;
1 ответ
В моем случае я добавил неправильный путь к базовому URL. Например, мой путь был "/oauth/access_token".