我正在使用 google 联系人 api (gdata) 在 google 联系人中设置联系人的照片。
我正在使用 fiddler,我看到请求是根据Google 通讯录示例 https://developers.google.com/google-apps/contacts/v3/#addingupdating_a_photo_for_a_contact但从google下载回来的照片始终是96x96。
我用来更新和下载照片的代码是:
public void UpdateUserPhoto(Contact contact, Stream photo)
{
_contactsRequest.SetPhoto(contact, photo);
}
public static void DownloadPhoto(ContactsRequest cr, Contact contact)
{
if (contact.PhotoEtag == null)
return;
Stream photoStream = cr.Service.Query(contact.PhotoUri);
FileStream outStream = File.OpenWrite(string.Format(@"c:\friends\{0}.jpg",contact.Name.FullName));
byte[] buffer;
using (var memoryStream = new MemoryStream())
{
photoStream.CopyTo(memoryStream);
buffer = memoryStream.ToArray();
}
outStream.Write(buffer, 0, buffer.Length);
photoStream.Close();
outStream.Close();
}
我尝试将联系人同步到手机,但大小也始终限制为 96x96。
我做错了什么或者谷歌不允许同步超过 96x96 吗?我可以看到许多应用程序可以同步超过 96x96 的联系人,那么我想这是可能的,但是正确的方法是什么?
Edit
以下是 fiddler 捕获的照片的同步和检索:
同步照片请求:
PUT https://www.google.com/m8/feeds/photos/media/[电子邮件受保护]/55f3484e8aaf1c82 https://www.google.com/m8/feeds/photos/media/mymail@gmail.com/55f3484e8aaf1c82HTTP/1.1
Etag:“SomeEtag”
如果匹配:“SomeEtag”。
内容类型:图像/jpg
用户代理:G-GoogleContactsSync/GOAuth2RequestFactory-CS-Version=2.2.0.0
授权:持有者 myAuthorization
GData 版本:3.0
主办方:www.google.com
内容长度:34480
同步照片响应
HTTP/1.1 200 好
内容类型:application/atom+xml;字符集=UTF-8;类型=条目
GData 版本:3.1
ETag:“KgxxHGIyfCt7I2BoA047FShUNFU3BWx8RDQ。”
日期:2014 年 10 月 1 日,星期三 20:13:06 GMT
到期时间:2014 年 10 月 1 日星期三 20:13:06 GMT
缓存控制:私有,max-age=0
X-内容类型选项:nosniff
X 框架选项:SAMEORIGIN
X-XSS-保护:1;模式=块
服务器:GSE
替代协议:443:quic,p=0.01
内容长度:694
(这里有带有 ID、更新、编辑等的 xml)
照片要求:
GET https://www.google.com/m8/feeds/photos/media/[电子邮件受保护]/55f3484e8aaf1c82 https://www.google.com/m8/feeds/photos/media/myMail@gmail.com/55f3484e8aaf1c82HTTP/1.1
内容类型:application/atom+xml;字符集=UTF-8
用户代理:G-GoogleContactsSync/GOAuth2RequestFactory-CS-Version=2.2.0.0
授权:持有者 myAuthorization
GData 版本:3.0
主办方:www.google.com
照片回应:
HTTP/1.1 200 好
内容类型:图像/jpeg
到期时间:2014 年 10 月 1 日,星期三 20:25:54 GMT
日期:2014 年 10 月 1 日,星期三 20:25:54 GMT
缓存控制:私有、max-age=0、必须重新验证、不转换
变化:接受、X-GData-授权、GData-版本
GData 版本:3.1
ETag:“一些Etag。”
传输编码:分块
X-内容类型选项:nosniff
X 框架选项:SAMEORIGIN
X-XSS-保护:1;模式=块
服务器:GSE
替代协议:443:quic,p=0.01