在Gmail API中按日期和时间排序邮件/邮件

Ank*_*hah 5 php sorting email gmail gmail-api

我正在开发一个网络应用程序,我需要在每小时的基础上查看我从我的Gmail帐户中的特定发件人收到的"最新邮件".

为实现这一目标,我使用了Gmail API for PHP,并且能够从特定发件人检索邮件,但我需要按日期和时间对此邮件/邮件进行排序,以便我可以从特定发件人处获取最后一封电子邮件.

我检查了Gmail API的高级搜索选项, 它提供了与日期相关的排序,但它没有提供任何方法来处理它的时间.

有没有办法得到时间和日期并对其进行排序?或任何其他方法可以帮助我从特定发件人获取"最新"邮件?

请帮帮我.提前致谢.

Tho*_*lle 0

您可以只列出消息,要求一条消息并明确说明该消息应来自哪个电子邮件地址。

maxResults = 1
query = from:example@gmail.com

GET https://www.googleapis.com/gmail/v1/users/me/messages?maxResults=1&q=from%3Aexample%40gmail.com&access_token={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

回复:

{
 "messages": [
  {
   "id": "14e97f7ea9b794a4", // This is the Id of the latest message.
   "threadId": "14e97f7ea9b794a4"
  }
 ],
 "nextPageToken": "03176727664356668776",
 "resultSizeEstimate": 3
}
Run Code Online (Sandbox Code Playgroud)

现在只需要获取消息即可!如果您对用户收到邮件的时间感兴趣,您可以询问internalDate,它表示自创建邮件以来的时间(以毫秒为单位)。

fields = internalDate,payload/body/data

GET https://www.googleapis.com/gmail/v1/users/me/messages/14e97f7ea9b794a4?fields=internalDate%2Cpayload%2Fbody%2Fdata&access_token={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)

回复:

{
 "internalDate": "1437068683000", // This is when the message was created.
 "payload": {
  "body": {
   "data": "VGhlIGFjdHVhbCBtZXNzYWdlIHRleHQgZ29lcyBoZXJl" // This is the mail data.
  }
 }
}
Run Code Online (Sandbox Code Playgroud)

这不是 php 代码,但你比我更清楚!只需在框架中使用相同的查询和字段,您就会得到相同的结果。