我正在尝试使用Google OAuth 2来访问Google API。 当我尝试通过访问令牌交换代码时,它不起作用。
我用这种方法来做。
(void)getAccessTokenwWithCode:(NSString*)code
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[@"https://accounts.google.com/o/oauth2/token" ]];
[request setHTTPMethod:@"POST"];
NSDictionary *postBodyDic = [NSDictionary dictionaryWithObjectsAndKeys:
code, @"code",
@"my_client_id", @"client_id",
@"my_client_secret", @"client_secret",
@"http://localhost", @"redirect_uri",
@"authorization_code", @"grant_type",
nil];
NSString *postBody = [postBodyDic JSONString];
NSData *data = [postBody dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[request setHTTPBody:data];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request
success:^(NSURLRequest *request, NSURLResponse *response, id JSON)
{
NSLog(@"%@", JSON);
}
failure:^(NSURLRequest *request, NSURLResponse *response, NSError *error, id JSON)
{
NSLog(@"ERROR \n%@", error );
}
];
[queue addOperation:operation];
}
我收到400错误
任何人都可以帮我解决问题吗?
提前致谢。
答案 0 :(得分:0)
由于您使用的是AFNetworking类,请尝试使用AFNetworking Extension for OAuth 2 Authentication。我没有使用它,但它看起来像你需要的。