How to get gmail Contacts in iOS app using google contacts api?

In my application, we saved the ability to log in via gmail. I have a requirement to restore gmail contacts.

In the following method, I use an auth object (once successful) to retrieve gmail contacts by creating a request with a URL: " https://www.google.com/m8/feeds/contacts/default/full "

- (void)finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error { if(!error) { auth.clientID =myClientId; auth.clientSecret =myClientSecret; auth.scope= @"https://www.googleapis.com/auth/contacts.readonly"; NSString *urlStr = @"https://www.google.com/m8/feeds/contacts/default/full"; NSURL *url = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [request setHTTPMethod:@"GET"]; [request setValue:@"3.0" forHTTPHeaderField:@"GData-Version"]; [auth authorizeRequest:request completionHandler:^(NSError *error) { NSString *output = nil; if (error) { output = [error description]; } else { NSURLResponse *response = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if (data) { // API fetch succeeded :Here I am getti output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; NSLog(@"%@",output); } else { // fetch failed output = [error description]; } } }]; } } 

I get a client error (401). is there any thing that i don't miss out on my request.

+6
source share
1 answer

The correct scope is "https://www.google.com/m8/feeds"

In fast

 class func getContactsFromUser() { let urlStr = "https://www.google.com/m8/feeds/contacts/default/full" let url = NSURL(string: urlStr); var request = NSMutableURLRequest(URL: url!) let appd = UIApplication.sharedApplication().delegate as! AppDelegate let error: NSError! appd.service.authorizer.authorizeRequest!(request, completionHandler: { (error) -> Void in if error != nil { println("error getting contacts is \(error.localizedDescription)") } else { let response: AutoreleasingUnsafeMutablePointer<NSURLResponse?>=nil let data = NSURLConnection.sendSynchronousRequest(request, returningResponse: response, error: nil) if data != nil { let stringResponse = NSString(data: data!, encoding: NSUTF8StringEncoding) println("**** stringResponse **** \(stringResponse!)") } else { println("error 2 getting contacts is ") } } }) } 

In object c

 - (void)doAnAuthenticatedAPIFetch { NSString *urlStr = @"https://www.google.com/m8/feeds/contacts/default/full"; NSURL *url = [NSURL URLWithString:urlStr]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; [self.auth authorizeRequest:request completionHandler:^(NSError *error) { NSString *output = nil; if (error) { output = [error description]; } else { NSURLResponse *response = nil; NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; if (data) { // API fetch succeeded :Here I am getti output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; } else { // fetch failed output = [error description]; } } }]; } 
0
source

Source: https://habr.com/ru/post/978062/


All Articles