我找到了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];
- }