如何从gmail获取特定电子邮件的线程ID

时间:2015-11-26 12:31:24

标签: ruby-on-rails gmail-api

我想找到我从gmail发送的某个电子邮件的线程ID。我浏览了Gmail apis,其中有获取线程列表的方法以及在发送用户ID(即电子邮件和线程ID)后向您提供与该线程相关的所有消息的方法。我可以使用list方法获取线程ID,但有没有其他方法来获取线程ID?

1 个答案:

答案 0 :(得分:1)

如果您只有messageId,则可以get the message,特别是只询问该消息的threadId

请求

usedId = me
id = 1514453c0800d5fa
fields = threadId

GET https://www.googleapis.com/gmail/v1/users/me/messages/1514453c0800d5fa?fields=threadId&access_token={YOUR_API_KEY}

<强>响应

{
 "threadId": "1514453c0800d5fa"
}

然后,只需将其用于get the thread

请求

userId = me
id = 1514453c0800d5fa

GET https://www.googleapis.com/gmail/v1/users/me/threads/1514453c0800d5fa?access_token={YOUR_API_KEY}

此外,如果您知道该消息是该主题中的第一条消息,则threadId将与messageId相同,如上例所示。

如果你没有谷歌自己的messageId而是Message-ID,你必须list the message,如你所说:

请求

userId = me
q = rfc822msgid:<Message-ID>

GET https://www.googleapis.com/gmail/v1/users/me/messages?q=rfc822msgid%3A%3C0000015148b39f7a-64856e69-3b6e-4e37-bff0-db4e26aae420-000000%40eu-west-1.amazonses.com%3E&access_token={YOUR_API_KEY}

<强>响应

{
 "messages": [
  {
   "id": "15148b3a2f9a26a0",
   "threadId": "15148b3a2f9a26a0"
  }
 ],
 "resultSizeEstimate": 1
}