按日期排序Gmail主题

时间:2017-06-19 16:35:19

标签: swift google-api gmail gmail-api

我希望有人可以推荐一种按日期排序Gmail线程的好方法,而无需详细了解数千个线程。

现在我使用threads.list来获取主题列表,并且我使用他们返回的任何顺序。 正确因为它以反向的时间顺序返回线程。除了年表显然是由线程中的第一条消息而不是线程的最新消息决定的。

可以在列表顶部获取新邮件,但如果有人对几天前启动的新帖件有新回复,那就不好了。我想把它放在列表的顶部,因为它是一条新消息。但是threads.list会根据第一条消息对其进行排序。

我认为答案可能是根据historyId对线程进行排序。这确实按最近的消息排序。但它也受到任何其他线程变化的影响。如果用户更新邮件上的标签(例如,通过主演),historyId会发生变化。然后,即使消息不是新消息,消息也会排到最前面。

我可以使用threads.get来获取线程的详细信息,并根据它进行更智能的排序。但是,用户可能拥有数千个主题,我不想为每个主题发出此调用。

有没有人有更好的方法?我错过了什么?

1 个答案:

答案 0 :(得分:0)

我不是开发人员,之前从未使用过API,但我只是简化了API文档,而且它似乎没有您想要的功能。

无论如何,这是我在你的问题中所理解的:

  

你想要的是按每个帖子中的最新消息组织线程。

我认为您可以使用users.messagesthreads.list的组合。在users.messages中,您将拥有ThreadID:

  

threadId string消息所属线程的ID。

该方法将使用user.messages的日期来组织从较新到旧的最新消息,然后通过 threadId 递归获取其原始线程,并使用 threads.list打印线程根据他们最新收到的消息。

使用此方法,您可以避免每个线程中的递归,从而节省资源和时间。

我不知道新邮件如何受到标签或主演的影响,您必须找到它。

如果我的回答不正确或误解,我会提前道歉。