我正在尝试使用oauth2从23和我获取数据,但不断收到“错误请求”代码。这是我第一次使用OAuth2而且我不确定我做错了什么。
当我使用AFOAuth2Client时,我收到错误代码400:
AFOAuth2Client* oauthClient = [AFOAuth2Client clientWithBaseURL:[NSURL URLWithString:@"https://api.23andme.com/"] clientID:clientIDString secret:secretString];
[oauthClient authenticateUsingOAuthWithPath:@"/token/"
code:@"zzz"
redirectURI:@"myapp://callback/oauth"
scope:@"analyses"
success:^(AFOAuthCredential *credential)
{
NSLog(@"I have a token! %@", credential.accessToken);
[AFOAuthCredential storeCredential:credential withIdentifier:oauthClient.serviceProviderIdentifier];
}
failure:^(NSError *error) {
NSLog(@"Error: %@", error);
}];
使用以下消息命中错误块:
Error: Error Domain=com.alamofire.networking.error Code=-1011 "Expected status code in (200-299), got 400" UserInfo=0x1fda4f80 {NSErrorFailingURLKey=https://api.23andme.com/token/, NSLocalizedDescription=Expected status code in (200-299), got 400}
当我尝试GTMOauth2Sample时,在授权屏幕解除后我收到invalid_client错误。
我做错了什么?
答案 0 :(得分:0)
您可以尝试使用23andme https://github.com/23andMe/OAuth2Client中的此客户端(从https://github.com/nxtbgthng/OAuth2Client分叉)。
这是适用于Mac OS X& S的OAuth2库。 iOS(Cocoa& Cocoa touch)。
实际上OAuth2.0是标准级协议,大多数公司的OAuth2.0服务接口也是标准协议。