您可以很容易地在用户中选择您想要的标题。线程:get-request,像这样:
format = metadata
metadataHeaders = From
GET https://www.googleapis.com/gmail/v1/users/me/threads/14eaffaf5e3e8242?metadataHeaders=From&format=metadata&key={YOUR_API_KEY}
反应:
{
"id": "14eaffaf5e3e8242",
"historyId": "510358",
"messages": [
{
"id": "14eaffaf5e3e8242",
"threadId": "14eaffaf5e3e8242",
"labelIds": [
"SENT",
"INBOX",
"IMPORTANT"
],
"snippet": "Wow Emil!",
"historyId": "510292",
"internalDate": "1437471536000",
"payload": {
"mimeType": "multipart/mixed",
"headers": [
{
"name": "From", // I just got the header I asked for.
"value": "Emil Tholin <emtholin@gmail.com>"
}
]
},
"sizeEstimate": 9260
}, ...
}
你也可以很容易地得到身体的某些部位。例如,这里我请求消息体中所有附件的attachmentIds:
field = messages/id,messages/payload/parts/body/attachmentId
GET https://www.googleapis.com/gmail/v1/users/me/threads/14eaffaf5e3e8242?fields=messages%2Fid%2Cmessages%2Fpayload%2Fparts%2Fbody%2FattachmentId&key={YOUR_API_KEY}
反应:
{
"messages": [
{
"id": "14eaffaf5e3e8242",
"payload": {
"parts": [
{
"body": { // This message had an attachment.
"attachmentId": "ANGjdJ_0lphTo48BO0xBT_YOSo3tYah23hzpjyATe3GwfziK0I6401P_8-ZYoGuCQPHhpPP0-S_pjL68WIEZzQ0tu72RcIOE4UY3kA4u8PjXPf3Cm5PxVJjmH9N0hm0fFX31RYo8bfZQ6l7bDbYbnCSZbckG7g8enGaKMPbBzIEEC4HXr_YghOYWSfrXKXiFLnxWN4LfsFk3IXUN2tVvMe_0xMhDDfBlqYPnXHr2PhPghq7bQojNxiH4YziIqaKmwiU4xqVfygbae-K-_Q2blyz0EgI4OXjMzwz56Q5e1w"
}
}
]
}
},
{
"id": "14eaffb277b61cd0" // This message had no attachment.
}, ...
]
}
在第一个请求中可以看到,在请求特定的元数据头时,没有检索正文的任何部分。单个字段也很难在fields
-参数中挑选出来,因为标头不是键值对,而是表单{ "name": <HEADER_NAME>, "value": <HEADER_VALUE> }
上的对象。
是否有办法将这两个请求结合起来?我想获得所有有关的元数据的消息在同一时间获得多少附件有在消息。
From Users.threads.get.
"metadata":返回带有标识符和标签等消息元数据的邮件头。
fields参数仅用于限制返回的数据量。由于metadata
模式已经是一个有限的响应,你不能使用字段来获取该子集之外的数据。您最好的选择是使用第二个带有字段的示例,然后在本地过滤元数据值。