我找到了Google提供的服务,可以访问各种Google服务的Google API.我可以在iPhone中设置一个项目,并为iOS应用程序(通过OAuth2.0)和本机应用程序创建API访问.我想为我的iPhone应用程序使用本机API.它API为我提供了电子邮件,全名,名字,姓氏,google_id,性别,dob,profile_image.如何在我的iPhone应用程序,任何示例应用程序,可用的代码段中使用这些?
请帮我.
这是我的代码:
-(void) loadGmail_Login { NSString *keychainItemName = nil; if ([self shouldSaveInKeychain]) { keychainItemName = kKeychainItemName; } // For GTM applications,the scope is available as NSString *scope = @"http://www.google.com/m8/Feeds/"; // ### Important ### // GTMOAuthViewControllerTouch is not designed to be reused. Make a new // one each time you are going to show it. // Display the autentication view. GTMOAuthAuthentication *auth; auth = [GTMOAuthViewControllerTouch authForGoogleFromKeychainForName:kKeychainItemName]; GTMOAuthViewControllerTouch *viewController = [[[GTMOAuthViewControllerTouch alloc] initWithScope:scope language:nil appServiceName:keychainItemName delegate:self finishedSelector:@selector(viewController:finishedWithAuth:error:)] autorelease]; // You can set the title of the navigationItem of the controller here,if you want. // Optional: display some html briefly before the sign-in page loads NSString *html = @"<html><body bgcolor=silver><div align=center>Loading sign-in page...</div></body></html>"; [viewController setInitialHTMLString:html]; [[self navigationController] pushViewController:viewController animated:YES]; } - (void)viewController:(GTMOAuthViewControllerTouch *)viewController finishedWithAuth:(GTMOAuthAuthentication *)auth error:(NSError *)error { if (error != nil) { // Authentication Failed (perhaps the user denied access,or closed the // window before granting access) NSLog(@"Authentication error: %@",error); NSData *responseData = [[error userInfo] objectForKey:@"data"]; // kGTMHTTPFetcherStatusDataKey if ([responseData length] > 0) { // show the body of the server's authentication failure response NSString *str = [[[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding] autorelease]; NSLog(@"%@",str); } [self setAuthentication:nil]; } else { // save the authentication object [self setAuthentication:auth]; // Just to prove we're signed in,we'll attempt an authenticated fetch for the // signed-in user [self doAnAuthenticatedAPIFetch]; } } - (void)doAnAuthenticatedAPIFetch { NSString *urlStr; // Google Contacts Feed // // https://www.googleapis.com/oauth2/v2/userinfo urlStr = @"http://www.google.com/m8/Feeds/contacts/default/thin"; NSURL *url = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [mAuth authorizeRequest:request]; NSError *error = nil; NSURLResponse *response = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if (data) { // API fetch succeeded NSString *str = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; NSLog(@"API response: %@",str); GGCXml_Adaptor *localAlphabetXMLParser = [[GGCXml_Adaptor alloc] init]; [localAlphabetXMLParser processBooksXML:data]; [localAlphabetXMLParser release]; // [self updateUI]; } else { // fetch Failed NSLog(@"API fetch error: %@",error); } } - (void)setAuthentication:(GTMOAuthAuthentication *)auth { [mAuth autorelease]; mAuth = [auth retain]; }