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".

Другие вопросы по тегам