实施Google OAuth 2

时间:2012-08-01 14:32:22

标签: iphone oauth google-api

我正在尝试使用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错误

任何人都可以帮我解决问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

由于您使用的是AFNetworking类,请尝试使用AFNetworking Extension for OAuth 2 Authentication。我没有使用它,但它看起来像你需要的。