查询联系人时,我使用下面的代码检索所有联系人
$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);
当我浏览$feed的每个条目时,我可以访问contactId,根据Contacts API,我应该能够通过在以下URL上执行get来检索图片:
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"。我做错什么了吗?有什么示例文档吗?
要获取照片,请使用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;
}
}