【问题标题】:User.threads.list returns not all threadsUser.threads.list 不是返回所有线程
【发布时间】:2015-04-19 10:32:14
【问题描述】:

我试图为我的测试用户获取所有线程。
根据用户配置文件(Users.getProfile),“threadsT​​otal” = 45771

所以,我希望为 Users.threads.list 获得 45771 个线程。
但是,我只得到 599 个结果。

我在请求中使用以下参数:

:fields => "threads(id),nextPageToken",
:includeSpamTrash => true, 
:userId => "me", 
:maxResults => '100'

在日志中我看到 6 次成功的 api 调用。(100+100+100+100+100+99 结果)

使用 :maxResults => '20' 我只得到 319 个结果。(有 16 个成功的 api 调用)

如何为我的用户获取所有线程?

【问题讨论】:

  • 您只是想通过 User.threads: 列表获取线程 id,还是同时尝试通过 Users.threads: get 获取线程内容?
  • 我尝试在 API 资源管理器中检查threads.list,我能够获取所有线程,请在此处尝试developers.google.com/gmail/api/v1/reference/users/threads/list 如果您仍然看到错误,请告诉我
  • 在 API 资源管理器中的结果完全相同。获取配置文件显示“threadsT​​otal”:45771,线程列表仅返回 590 个项目
  • 您是否看到线程日期之间存在间隔?这里提到了相同或类似的问题Lots of threads missing in Users.threads.list()(我会将您的问题标记为重复,但看起来我对此没有足够的声誉

标签: gmail-api


【解决方案1】:

看起来这可能与垃圾箱和垃圾邮件文件夹中的线程数有关。我发现对 users.get_profile 和 threads.list.count 的响应中的 threadsT​​otal 值之间的差异等于垃圾箱中的线程数。

我还检查了 users.get_profile.messageCount 和 messages.list.count 发现了类似的结果。

当我在 users.threads.list 参数中将 :includeSpamTrash 设置为 false 时,这个问题就消失了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-02
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多