2016-07-29 15 views
6

मैं अपने दोस्तों के ईमेल के साथ पूर्ण संपर्क सूचियां प्राप्त करना चाहता हूं। मैं संपर्कों की सूची प्राप्त कर सकता हूं लेकिन ईमेल नहीं प्राप्त कर सकता हूं। मैं कैसे संपर्क सूची से ईमेल प्राप्त कर सकते हैंGoogle API - संपर्क मेल प्राप्त करें

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>'; 

:

यहाँ मेरी कोड है?

कोड::

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

को बदलें:

+0

किसी ने मुझसे मदद का पता लगाएं? –

+0

उत्तर के साथ बिल्कुल वही प्रश्न है: http://stackoverflow.com/questions/21469433/how-to-get-email-address-when-user-is-authenticated-with-google-oauth2-and-peopl – Jehy

+0

नहीं, मुझे संपर्कों से ईमेल प्राप्त करने की आवश्यकता है :) –

उत्तर

3

मैं समाधान है

$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); 
0

आप गूगल से संपर्क एपीआई में GData घटकों से संपर्क तरह का उपयोग कर सकते मान लिया जाये कि $response है Google संपर्क के अनुरोध से आपको मिली प्रतिक्रिया:

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

गूगल संपर्क एपीआई से संपर्क तरह तत्व बारे में अधिक जानकारी के लिए देखें here

संबंधित मुद्दे