2013-08-09 3 views
0

При выполнении запроса для контактов я использую следующий код, чтобы получить все мои контактыПолучение фотографии контакта с Zend GData с PHP

$gdata = new Zend_Gdata($client); 
$gdata->setMajorProtocolVersion(3); 
$query = new Zend_Gdata_Query(
     "http://www.google.com/m8/feeds/contacts/default/full"); 
$feed = $gdata->getFeed($query); 

Как я смотрю через каждую запись в $ корма я могу получить доступ к ContactId и согласно контакты API я должен иметь возможность получить изображение, делая GET по следующему URL-адресу:

http://www.google.com/m8/feeds/photos/media/default/contactId

Так я использую тот же самый механизм для извлечения контактов и попытаться получить фото после установки $ ID :

$query = new Zend_Gdata_Query(
     "http://www.google.com/m8/feeds/photos/media/default/$id"); 
$entryFeed = $gdata->getFeed($query); 

Но я получаю сообщение об ошибке «DOMDocument не может разобрать XML». Я делаю что-то неправильно? Есть ли какие-либо примеры документов?

ответ

0

Чтобы получить фотографию, используйте DOMXpath и найдите тег «// atom: link», а затем используйте $ gdata-> get (href), чтобы захватить фотографию. Проверьте атрибут etag для каждой ссылки, это говорит вам, есть ли фотография профиля, связанная с этим контактом.

  $doc = new DOMDocument; 
      $doc->recover = true; 
      $doc->loadXML($entry->getXML()); 
      $xpath = new DOMXPath($doc); 
      $links = $xpath->query('//atom:link'); 
      foreach($links as $link) { 
       if($link->getAttribute('etag') != "") { 
        $http_response = $gdata->get($link->getAttribute('href')); 
        $rawImage = $http_response->getBody(); 
        $fp = fopen("/var/www/profile/$id.jpg", "w"); 
        fwrite($fp, $rawImage); 
        fclose($fp); 
        break; 
       } 
      } 
Смежные вопросы