0

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 エラーが発生します

誰でも問題を特定するのを手伝ってくれますか?

前もって感謝します。

4

1 に答える 1

0

AFNetworkingクラスを使用しているため、OAuth2認証にAFNetworking拡張機能を使用してみてください。使ったことはありませんが、必要なもののようです。

于 2012-08-03T03:37:45.927 に答える