繁体   English   中英

如何通过PHP更新Google联系人的照片?

[英]How to update Google Contact's photo via PHP?

我正在使用PHP编写一个网站,该网站将允许用户在一个较长的列表中查看其所有Google联系人的姓名和个人资料照片。 然后,用户可以拖放新照片以替换现有的个人资料照片。

但是,尝试更新照片时出现401(未经授权的访问)错误。

我知道access_token是正确的,因为它适用于GET请求,例如https://www.google.com/m8/feeds/photos/media/default/6f2?access_token=ya29.AHES6ZR_ZS7_u-8TbMOMaeaGW9q4F7tkuPxW6gFTulyBX

文档没有太大帮助。 另请参阅这些这些

我的代码如下所示:

#the stuff that i echo out is just for debugging purposes
$apiVersion='3.0';
$access_token = $this->session->userdata('googleauth_access_token');

$url = 'https://www.google.com/m8/feeds/photos/media/default/' . $contactID;
$fp = fopen($image_location, "r");
$filesize = filesize($image_location);
echo '<img src="https://www.google.com/m8/feeds/photos/media/default/'. $contactID. '?access_token=' . $access_token.'"/><br/>';    
echo $image_location;
echo $filesize;
echo $url;
$requestHeaders=array('Content-type: image/*','If-Match: '.$eTag,'GData-Version: '.$apiVersion);
$requestHeaders[]='Authorization: Bearer '. $access_token;
print_r($requestHeaders);
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_PUT, true);
curl_setopt($c, CURLOPT_INFILESIZE, $filesize);
curl_setopt($c, CURLOPT_INFILE, $fp);
curl_setopt($c, CURLOPT_VERBOSE, true);
curl_setopt($c, CURLOPT_HTTPHEADER, $requestHeaders);
$result = curl_exec($c);    
$curlGetInfo=curl_getinfo($c);
print_r($curlGetInfo);
curl_close($c);
fclose($fp);
echo $result;

我还尝试了各种变体,例如将'Authorization: Bearer'行替换为Authorization: GoogleLogin auth=ya29.AHES6ZR_ZS7_u-8TbMOMaeaGW9q4F7tkuPxW6gFTulyBX

谢谢你的帮助。

我不敢相信它能起作用,但是将image/*更改为image/jpg解决401错误问题。

这篇文章向我发送了小贴士。)

仅供参考,我仍在使用$requestHeaders[]='Authorization: Bearer '. $access_token; $requestHeaders[]='Authorization: Bearer '. $access_token; 而不是$requestHeaders[]='Authorization: GoogleLogin auth='. $access_token; $requestHeaders[]='Authorization: GoogleLogin auth='. $access_token;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM