Java 为什么Gmail API ListThreadResponse get线程什么都不做?

Java 为什么Gmail API ListThreadResponse get线程什么都不做?,java,android,gmail-api,Java,Android,Gmail Api,我正在尝试启动basic并获取收件箱中所有线程的列表。我只有14个总数,使测试容易。每当我使用以下内容时: ListLabelsResponse lR = mService.users().labels().list(user).execute(); 我能得到标签清单。但当我在谷歌的开发者教程中尝试对线程执行同样的操作时: 它永远不会结束。调用上述语句后,该语句所在的方法的其余部分将永远不会运行。什么也没发生。我没有收到任何错误消息。我使用和不使用.setQ测试了上述语句 通过大量的日志记录,

我正在尝试启动basic并获取收件箱中所有线程的列表。我只有14个总数,使测试容易。每当我使用以下内容时:

ListLabelsResponse lR = mService.users().labels().list(user).execute();
我能得到标签清单。但当我在谷歌的开发者教程中尝试对线程执行同样的操作时:

它永远不会结束。调用上述语句后,该语句所在的方法的其余部分将永远不会运行。什么也没发生。我没有收到任何错误消息。我使用和不使用.setQ测试了上述语句


通过大量的日志记录,我将它缩小到一条ListThreadResponse语句,使程序看起来好像永远在运行,而不做任何事情。我等了5分钟,只是想看看它是否真的很慢,但还是没什么。有人知道为什么会发生这种情况吗?

如果您查看文档,您将看到范围
https://www.googleapis.com/auth/gmail.labels
就足够了。但是,这不足以列出线程,这需要一个


如果您使用适当的作用域,并再次执行授权步骤,您将获得有效的
令牌。

看起来不错。能否删除
setQ
,然后添加以下内容<代码>列出线程=threadsResponse.getThreads();对于(Thread-Thread:threads){System.out.println(“线程ID:+Thread.getId());}
。它不应该挂起来。我已经试过你之前提到的,它永远不会起作用。我不明白为什么我能得到标签,但不能得到线程。你只是在使用范围
https://www.googleapis.com/auth/gmail.labels
在您的客户机中?这可能是阻止它工作的原因。是的。如果查看有关列出标签和线程的参考文档,您会发现列出线程需要一个具有更多权限的作用域。我看到:)您的
刷新令牌
可能没有过期,因此具有旧作用域的令牌仍然有效。一定要买一个新的。
 ListThreadsResponse threadResponse =
                mService.users().threads().list(user).setQ(query).execute();