2016-02-18 155 views
1

我想開始基本並獲得我的收件箱中的所有線程列表。我只有14個測試容易。每當我使用以下內容:爲什麼Gmail API ListThreadResponse讓Threads沒有做任何事情?

ListLabelsResponse lR = mService.users().labels().list(user).execute(); 

我能夠得到標籤列表。但是,當我試圖爲下開發商線程做同樣的從谷歌教程:https://developers.google.com/gmail/api/v1/reference/users/threads/list

ListThreadsResponse threadResponse = 
       mService.users().threads().list(user).setQ(query).execute(); 

它永遠不會結束。一旦上述語句被調用,該語句的其餘部分永遠不會運行。什麼都沒發生。我沒有收到錯誤消息。我使用和不使用.setQ來測試上述語句。

通過大量的日誌記錄,我將其縮小到單一的ListThreadResponse語句,使得程序看起來像是永遠不會執行任何操作。我等了5分鐘,看看它是否真的很慢,但什麼都沒有。有誰知道爲什麼會發生這種情況?

+1

看起來不錯。你可以刪除'setQ',然後添加以下內容? '列表 threads = threadsResponse.getThreads(); for(Thread thread:threads){System.out.println(「Thread ID:」+ thread.getId()); }'。它不應該掛起。 – Tholle

+0

我已經嘗試過你之前提到的,它永遠不會工作。我不明白爲什麼我能夠獲得標籤,但不是線程。 – Kumar

+1

您是否在客戶端使用範圍「https:// www.googleapis.com/auth/gmail.labels」?這可能是阻止它工作的原因。 – Tholle

回答

1

如果您查看listing labels的文檔,您會發現範圍https://www.googleapis.com/auth/gmail.labels就足夠了。這不足以列出線程,但需要broader scope

如果您使用適當的範圍,並再次執行授權步驟,您將得到tokens將工作。

相關問題