【问题标题】:Gmail-API: get date of Hangout messageGmail-API:获取环聊消息的日期
【发布时间】:2015-05-13 04:14:03
【问题描述】:

有没有办法获取环聊消息的发送日期?

目标:从 google 获取所有 消息(电子邮件和环聊)以及发送位置的日期

原样:我使用的是 Gmail-API,messages.get() 端点。当我通过查询获取此端点时:in:!chats aka 电子邮件,一切正常。但是,如果我使用查询调用它:in:chats(环聊消息),端点将返回比普通消息更少的信息,不幸的是它不会在日期发送。

有没有办法从环聊消息中获取发送日期?

【问题讨论】:

  • 您无法使用 Gmail API 获取邮件的开始日期。您可以使用 message.list 获取消息 ID(聊天),但 message.get 不会提供有关开始日期的任何信息。但是在 message.list 中,在查询中,您可以通过给出开始日期和结束日期来提取消息。检查此链接support.google.com/mail/answer/7190?hl=en
  • 好的,message.list 查询是个好主意,但在我的应用程序中,我认为它可能效率低下(我需要在一天的政变中对消息进行分组 - 所以我会需要每天发送请求 - 可以通过分而治之来改进它,但仍然)。
  • 关于:You cannot get start date of message with Gmail API,对于电子邮件,我可以:screencast.com/t/ncjnbHaKVt

标签: gmail-api


【解决方案1】:

我建议您改为使用 threads.list() 列出整个聊天对话。

query = in:chat

GET https://www.googleapis.com/gmail/v1/users/me/threads?q=in%3Achat&access_token={YOUR_API_KEY}

回应:

{
 "threads": [
  {
   "id": "14786647099d3243",
   "snippet": "until I ?...",
   "historyId": "147978"
  }, ...
 ]
}

然后,只需在每个聊天对话上发出一个 thread.get()-request,明确要求internalDate-参数,您将在聊天中发送每条消息时得到。

fields = messages(id,internalDate)

GET https://www.googleapis.com/gmail/v1/users/me/threads/14786647099d3243?fields=messages(id%2CinternalDate)&key={YOUR_API_KEY}

回应:

{
 "messages": [
  {
   "id": "14786647099d3243",       // The Id of the chat message.
   "internalDate": "1406709035161" // Time in ms when the message was created.
  },
  {
   "id": "14786650de543fa8",
   "internalDate": "1406709075429"
  }, ...
 ]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-18
    • 1970-01-01
    • 2016-05-10
    • 2018-01-17
    • 2016-09-21
    • 2016-12-08
    • 2014-11-15
    • 2018-07-14
    相关资源
    最近更新 更多