2017-06-19 64 views
1

我希望有人能夠提供一種按日期對Gmail線程進行排序的好技術,而無需獲取潛在數千個線程的詳細信息。按日期對Gmail線索進行排序

現在我用threads.list得到線程的列表,和我使用的任何命令他們在正在返回。這是大多糾正它返回按時間倒序排列的線程。除了時間順序顯然是由線程中的第一條消息而不是線程的最新消息確定的。

這對於在列表頂部獲得新消息很好,但如果某人對幾天前開始的線程有新的回覆,那就不好。我想把它放在列表的首位,因爲這是一條新消息。但是threads.list會根據第一條消息對其進行排序。

我認爲答案可能是根據historyId排序線程。這確實按最近的消息排序。但它也受到其他線程更改的影響。如果用戶更新消息上的標籤(例如,通過標記它),historyId會發生變化。然後,該消息排在頂端,即使它不是新的。

我可以使用threads.get來獲取線程的細節,並根據它進行更智能的排序。但用戶可能擁有數千個線程,我不希望爲每個線程都進行此調用。

有沒有人有更好的方法?我錯過了什麼?

+0

你檢查「users.messages」,然後由他們的threadId組織? –

+0

@MiguelOrtiz我有,但'users.messages'不一致排序,所以雖然我可以按線程ID組織,這不會幫助按日期排序。 –

回答

0

我不是開發人員,以前從未使用過API,但我只是推薦了API文檔,而且似乎沒有您想要的功能。

無論如何,這是我在你的問題理解:

你想要的是在每一個最新的消息組織線程。

我以爲你可以使用users.messagesthreads.list的組合。在users.messages中,您將擁有ThreadID:

threadId string消息所屬的線程的ID。

的方法將使用user.messages日期從較新老組織的最新信息,然後通過線程ID遞歸獲得其原來的線程,並通過他們最新的與threads.list打印線收到消息。

使用此方法,您將避免每個線程中的遞歸節約資源和時間。

我不知道新消息如何受到標籤或主演的影響,您必須找出答案。

如果我的回答不正確或有誤導性,請提前致歉。

+0

列出用戶消息確實會給出線程標識,但不會顯示消息日期。除非您在每條消息上單獨調用['messages.get'](https://developers.google.com/gmail/api/v1/reference/users/messages/get),否則您不會獲得日期。這會遇到同樣的問題,可能會有數以千計的電話獲得準確的排序。 –

+0

在線程:列表中用「q」過濾怎麼樣,以便您可以按照比以下更新/新的日期進行過濾:https://developers.google.com/gmail/api/v1/reference/users/threads/list,即:更新:2017/01/01 +是:未讀我對你的問題非常好奇,希望你不要介意。 –

+0

我不知道我會如何使用它。我想按日期排序,而不是按它過濾。 –

相關問題