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]>"
}
]
}
}, ...
然後,你可以過濾消息了電子郵件地址,然後拿到那剩下的那些的整個郵件。