Google API - get contact email

I want to get complete contact lists with emails from my friends. I can get a contact list, but not have emails.

Here is my code:

require_once APPPATH . 'vendor/google/src/Google_Client.php'; require_once APPPATH . 'vendor/google/src/contrib/Google_Oauth2Service.php'; $client = new Google_Client(); $client->setApplicationName("PHP Google Test"); $client->setClientId('xxx'); $client->setClientSecret('xxx'); $client->setRedirectUri('http://www.domain.xx/admin/others/google?test'); $client->setScopes("http://www.google.com/m8/feeds/"); $oauth2 = new Google_Oauth2Service($client); if (isset($_GET['code'])) { $client->authenticate(); $_SESSION['token'] = $client->getAccessToken(); $redirect = 'http://www.domain.xx/admin/others/google'; header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL)); } if (isset($_SESSION['token'])) { $client->setAccessToken($_SESSION['token']); } if (isset($_REQUEST['logout'])) { unset($_SESSION['token']); $client->revokeToken(); } if ($client->getAccessToken()) { $req = new Google_HttpRequest("https://www.google.com/m8/feeds/contacts/default/full"); $val = $client->getIo()->authenticatedRequest($req); $response = json_encode(simplexml_load_string($val->getResponseBody())); print "<pre>" . print_r(json_decode($response, true), true) . "</pre>"; $_SESSION['token'] = $client->getAccessToken(); } else { $auth = $client->createAuthUrl(); } $auth = $client->createAuthUrl(); echo '<a href="' . $auth . '" target="_blank">' . $auth . '</a>'; 

How can I get email from my contact list?

+6
source share
2 answers

I have a solution:

the code:

 $response = json_encode(simplexml_load_string($val->getResponseBody())); print "<pre>" . print_r(json_decode($response, true), true) . "</pre>"; 

Change to:

 $xml = simplexml_load_string($val->getResponseBody()); $xml->registerXPathNamespace('gd', 'http://schemas.google.com/g/2005'); $output_array = array(); foreach ($xml->entry as $entry) { foreach ($entry->xpath('gd:email') as $email) { $output_array[] = array((string)$entry->title, (string)$email->attributes()->address); } } print_r($output_array); 
+3
source

you can use the contact view from gdata components in the Google contacts API Assuming that $response is the response you received from the request to the Google contact:

  $xml= new SimpleXMLElement($response); $xml->registerXPathNamespace('gd', 'http://schemas.google.com/g/2005'); $result = $xml->xpath('//gd:email'); 

Find more information about the Contact Kind element from the Google Contacts API here .

0
source

All Articles