2
gmail API是否允许搜索字符串并返回所有具有此字符串的邮件,但将每个电子邮件地址的列表限制为1封电子邮件。如何搜索特定字符串,但每个电子邮件地址只返回1封电子邮件?
例如,我想要查找包含某个用户名的所有邮件,但该列表仅包含每个地址的一封电子邮件。
gmail API是否允许搜索字符串并返回所有具有此字符串的邮件,但将每个电子邮件地址的列表限制为1封电子邮件。如何搜索特定字符串,但每个电子邮件地址只返回1封电子邮件?
例如,我想要查找包含某个用户名的所有邮件,但该列表仅包含每个地址的一封电子邮件。
不幸的是,使用Gmail API不支持这些类型的复杂查询。
东西沿着这些路线会得到它,虽然做:直到在响应没有nextPageToken
List messages与你的搜索字符串作为q
-parameter(那么你将已经得到的查询结果,每)。
Get all matching messages,只询问From
-header,并自己查找所有唯一发件人(batch requests对此用例很有用)。
例
列表消息ID
q = feel the bern
fields = messages(id),nextPageToken
GET https://www.googleapis.com/gmail/v1/users/me/messages?q=feel+the+bern&fields=messages(id)%2CnextPageToken&access_token={YOUR_API_KEY}
响应
{
"messages": [
{
"id": "151c1de994ad5e43"
},
{
"id": "1514f614e6c07c3f"
}, ...
]
}
得到的所有消息(批次)
format = metadata
metadataHeaders = from
fields = id,payload/headers
GET https://www.googleapis.com/gmail/v1/users/me/messages/151c1de994ad5e43?format=metadata&metadataHeaders=from&fields=id%2Cpayload%2Fheaders&access_token={YOUR_API_KEY}
响应
{
"id": "151c1de994ad5e43",
"payload": {
"headers": [
{
"name": "From",
"value": "Official Bernie Store <[email protected]>"
}
]
}
},
{
"id": "151c1de994ad3e22",
"payload": {
"headers": [
{
"name": "From",
"value": "Emil Tholin <[email protected]>"
}
]
}
}, ...
然后,你可以过滤消息了电子邮件地址,然后拿到那剩下的那些的整个邮件。