【发布时间】:2017-01-26 10:17:55
【问题描述】:
如何避免通过获取消息请求从 Gmail Rest API 加载附件数据。
使用 fields 参数至少我们可以避免加载几个字段,但是当我想加载邮件正文时,附件数据也会像 IMAP 一样与正文一起出现
【问题讨论】:
标签: gmail-api
如何避免通过获取消息请求从 Gmail Rest API 加载附件数据。
使用 fields 参数至少我们可以避免加载几个字段,但是当我想加载邮件正文时,附件数据也会像 IMAP 一样与正文一起出现
【问题讨论】:
标签: gmail-api
您不会像在 IMAP 中那样获得附件。您会收到一个attachmentId,您必须在附加请求中使用它才能获取附件。
我刚刚向自己发送了一条带有附加图片的消息。 API 的响应如下所示:
{
"id": "1573ec1aa0976b42",
"threadId": "1573ec1aa0976b42",
"labelIds": [
"SENT",
"INBOX",
"IMPORTANT",
"UNREAD"
],
"snippet": "",
"historyId": "939514",
"internalDate": "1474226662000",
"payload": {
"mimeType": "multipart/related",
"filename": "",
"headers": [ ... ],
"body": {
"size": 0
},
"parts": [
{
"mimeType": "multipart/alternative",
"filename": "",
"headers": [
{
"name": "Content-Type",
"value": "multipart/alternative; boundary=94eb2c0d3cba8637a2053ccd2461"
}
],
"body": {
"size": 0
},
"parts": [
{ ... },
{
"partId": "1",
"mimeType": "image/png",
"filename": "Screen Shot",
"headers": [ ... ],
"body": {
"attachmentId": "ANGjdJ-bmCvsIaV-4KfALXzVV_D567w4i6ksLnwIZhLAl3VXCE335663UbmOLC_vbLrCFusNtnWVpdTv3i88uR482kFwLZqAcwmI7C5gFlamob2aK4-lqAPlCZs17jtCQR9y5Mt4nnpP_Kg64N9qgXbDF0E2vYnEw4xwtEKEo4fRIAbc94ZjjfynFD832mh1B37XFMt-bYw9wkNv24xBife0koBNYpKs-gGLJkfu2EoZouqunGDX9ry1jq2jW2AClWcFXPXvgRBMjUcoRDPtvb9LLLrBhDjU1hu6r1Ibc3c2BSoBogT8QyIp2VUCuFU",
"size": 1511996
}
}
]
},
"sizeEstimate": 1513185
}
如您所见,它只包含一个attachmentId 而没有实际的附件数据。
【讨论】:
userId: me 和 format: full,您可以在 API Explorer 中尝试。如果只是在同一页面上使用与 Java 示例相同的参数,则会得到相同的响应:Message message = service.users().messages().get(userId, messageId).execute();