rest - 通过 google gmail api 仅下载电子邮件回复中的新内容
问题描述
我正在尝试通过 google API 访问 Gmail 邮件。
https://developers.google.com/gmail/api/v1/reference/users/threads
但是有效负载字段返回电子邮件正文的 base64。当电子邮件在线程中时,通常是回复以前的电子邮件。因此,只有回复部分才有用。回复部分可以通过GUI界面显示。有没有办法通过 API 只获取回复部分?
解决方案
不幸的是,没有直接的方法可以获取每个线程的最后回复。
如果要检索电子邮件线程的最后回复,首先应使用如下请求检索所有消息:GET
GET https://www.googleapis.com/gmail/v1/users/userId/messages
请求响应将如下所示:
{
"messages": [
users.messages Resource
],
"nextPageToken": string,
"resultSizeEstimate": unsigned integer
}
资源users.messages
看起来像这样:
{
"id": "",
"threadId": ""
}
在list
所有users.messages
资源中,包含相同 threadId
资源的是实际上包含回复的电子邮件。
所以为了得到最后一个回复,你可以找出哪个threadId
s出现了多次,然后检索它的最后一次出现,因为它是最后一个回复。或者,如果您想要所有回复(原始电子邮件除外),您可以检索除第一个回复(由原始电子邮件表示)之外的所有回复。
最后,要检索消息,您可以使用GET
如下请求:
GET https://www.googleapis.com/gmail/v1/users/userId/messages/id
注意:由userId
您要从中检索电子邮件/回复的电子邮件地址id
表示,而id
由消息的 表示。
参考