尝试从json响应中检索联系人照片时,Google会与API联系

时间:2015-03-08 21:55:47

标签: php json google-api google-contacts

我尝试使用JSON响应检索我的Google联系人照片。我想出了如何验证以及如何检索我需要的信息。

现在,我也尝试显示联系人照片,我知道照片位于json响应的这一位:

[link] => Array
   (
     [0] => Array
        (
          [rel] => http://schemas.google.com/contacts/2008/rel#photo
          [type] => image/*
          [href] => https://www.google.com/m8/feeds/photos/media/mymail%40gmail.com/{code}
          [gd$etag] => "{code}"
         )
   )

现在,如果我回显href,然后添加access_token,链接看起来像这样 - >

https://www.google.com/m8/feeds/photos/media/{{my-email-address}}/7473ab09b97a34?v=3.0?access_token={{my-access-token}}

这会导致链接断开。 我注意到如果删除?ver=3,链接实际上就可以了。 问题是:?ver = 3来自json响应,所以我不知道如何删除它。

现在,我已经尝试将链接设置为变量,要删除?ver=3,因为我不知道在哪里找到{{1}每个联系人都需要。

有任何帮助吗?我怎么能解决这个问题?

非常感谢

1 个答案:

答案 0 :(得分:1)

基于前面提到的相关问题(return google contacts api v3 photo?),或许可以像这样处理JSON响应:

foreach($output_array as $key=>$value){
    if (isset($value['email'], $value['title'])) {
        echo $value['email'].'<br/>';
        echo $value['title'].'<br/>'; 
        $photo = new Google_HttpRequest($value['hrefs'][0][0]);
        $photo_val = $client->getIo()->authenticatedRequest($photo);
        $photo_return = $photo_val->getResponseBody();
        $imgData = base64_encode($photo_return);
        echo "<img src= 'data:image/jpeg;base64, $imgData' />";
    }
}