【发布时间】:2017-01-05 22:16:54
【问题描述】:
我正在使用 gmailAPI 阅读电子邮件。从返回的 JSON 中,我得到一个 attachmentId,然后我查询 gapi.client.gmail.messages.attachments.get 以获取附件本身。我正在使用 png 附件测试下面的代码,我确实得到了 JSON,并且我假设的数据属性是 base64,因为这就是标题所说的
//是的,我知道下面的代码可能会更好,但现在我想弄清楚数据中包含什么。
function getAttachmentContent(attachmentDict, attachmentId, isLast) {
var request = gapi.client.gmail.users.messages.attachments.get({
'userId': 'me',
'messageId': getParameterByName('msgid'),
'id': attachmentId
});
request.execute(function (resp) {
attachmentDict[attachmentId].gmailAttachmentItem.Length = resp.size;
attachmentDict[attachmentId].gmailAttachmentItem.Content = resp.data;
if (isLast) {
//Return only the key values as an array.
var attachmentArray = new Array();
for (key in attachmentDict) {
if(key.indexOf("index") < 0)
attachmentArray.push(attachmentDict[key].gmailAttachmentItem);
}
emailMessage.GmailAttachments = attachmentArray.slice(0, attachmentArray.length - 1);
}
});
}
包含附件ID的JSON片段
{
"partId": "1",
"mimeType": "image/png",
"filename": "unnamed.png",
"headers": [
{
"name": "Content-Type",
"value": "image/png; name=\"unnamed.png\""
},
{
"name": "Content-Description",
"value": "unnamed.png"
},
{
"name": "Content-Disposition",
"value": "attachment; filename=\"unnamed.png\"; size=13258; creation-date=\"Mon, 29 Aug 2016 13:34:23 GMT\"; modification-date=\"Mon, 29 Aug 2016 13:34:24 GMT\""
},
{
"name": "Content-Transfer-Encoding",
"value": "base64"
}
],
"body": {
"attachmentId": "ANGjdJ8d3DgMc6114J2v-R16nU1biO2et7xOQZuC23BQgIXVq7v8mn-Ssn88I_zD-HOo6ArbKmv7vFe-1mkZKjNVkLPqP1n8wwhCgON-wh_BFkrArBkIU6SWN4Zh2uvKY2FQLIyCcJtyHDmZlgZB8b4MlLGiBXldpLJ0ioTH4f3De9YVuq5AxhioxbS9X2bggN2tT4YOZgXknVpBvsZ0O00Z43jAB92g3xMFqJjYeLN_l-vL0Xb73WY-xtwXWLGAPWlyD0wPq6a4Fi-qX_RWTfwMZN12AtGaLFFyrtGEKSfEo1cLKzYN8VosPPSVZHA",
"size": 18146
}
}
我收到此响应,数据中的内容是 base64 图像吗?
我正在使用 jsfiddle 链接来显示数据,因为粘贴整个响应超过了 30000 个字符的限制。
data属性中的内容是base64图片?如果不是,那是什么?根据谷歌
attachmentid:如果存在,则包含可以在单独的 messages.attachments.get 请求中检索的外部附件的 ID。如果不存在,则消息部分正文的全部内容包含在数据字段中。
大小:消息部分正文中的总字节数。
数据:MIME 消息部分的正文数据。对于没有邮件正文的 MIME 容器类型或正文数据作为单独的附件发送时,可能为空。如果正文数据包含在单独的附件中,则存在附件 ID。
我下载电子邮件时返回的大小 18146 与附件大小 13258 不同。存在 Attachmentid,所以当我使用 gapi.client.gmail.users.messages.attachments.get 时我应该获取附件大小不一样?
我如何获取附加到电子邮件的图像。
【问题讨论】:
标签: gmail-api