0

查询联系人时,我使用下面的代码检索我的所有联系人

$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”。难道我做错了什么?有没有示例文档?

4

1 回答 1

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;
                }
            }
于 2013-08-12T16:45:56.437 回答