我正在尝试将Fitbit整合到iOS应用程序中。我很惊讶地发现这有多么困难...我想象中会有一个iOS SDK。
无论如何,我正在尝试通过基于Web的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;