Gmail API ID 不工作,但线程 ID 工作
Posted
技术标签:
【中文标题】Gmail API ID 不工作,但线程 ID 工作【英文标题】:Gmail API ID is not working but and thread ID is working 【发布时间】:2019-01-27 09:59:59 【问题描述】:当我查询 Gmail API 时
results = service.users().messages().list(userId='me',q="from:xyz@wso2.com", maxResults=10).execute()
我得到了这个输出。这里我没有收到所有消息它只返回了Thread Id
和id
"messages": [
"id": "1655b9b497dc76aa",
"threadId": "165380da74833127"
,
"id": "1655b9a7409383dd",
"threadId": "1655b9a7409383dd"
,
"id": "1655b9a25c441268",
"threadId": "16470b77316be7ab"
,
....
为了得到消息,我必须再次查询。这里的问题是,当我使用 Id 查询时,它返回 400 错误,但是当我使用线程时,它返回带有 sn-p 的消息。但是在documentation中,他们已经明确提到我们要给出id
id - string - The ID of the message to retrieve.
-
Thread Id 和 Id 有什么区别?
我不能查询所有字段吗-
“labelIds”:[ “未读”, "CATEGORY_FORUMS", “收件箱” ], “sn-p”:“嗨,Amanda、Ruwan 和 Mifan,我们已经完成了与 Verizon 的 RFP 回合!请您查看 RFP 并开始 在做这个吗?如果我们需要让 WSO2 电信公司参与进来,请告诉我。 谢谢,”, "historyId": "5217959", “内部日期”:“1534833021000”....
作为一个没有查询的JSON,一次又一次,使用每个ID?如果我查询那么多时间,因为我必须查询 150000 个 ID,Google API 似乎可能会阻止我使用节流机制。
【问题讨论】:
【参考方案1】:来自文档Message resource,响应中的每条消息都返回一个。
id string 消息的不可变ID。
threadId string 消息所属线程的ID。要将消息或草稿添加到线程,必须满足以下条件:
必须在随请求提供的 Message 或 Draft.Message 中指定请求的 threadId。 必须按照 RFC 2822 标准设置 References 和 In-Reply-To 标头。 - 主题标头必须匹配。
你不能在 message.threadid 上使用message.get message.get 需要一个 message.id
我不能在不使用每个 ID 一次又一次查询的情况下将所有消息作为 JSON 查询吗?如果我查询那么多时间,因为我必须查询 150000 个 ID,Google API 似乎可能会阻止我使用节流机制。
没有可以返回的 maxResults 的限制。我认为它在 100 左右,但我没有看到它记录在案。您将不得不使用请求中返回的 nextPageToken 来获取下一页结果。您提出请求的速度是有限制的。因此,请保持合理,否则您将受到限制。
针对问题编辑进行更新
我不能查询所有字段吗-
如果您使用 fields=*
Doc on fields paramater 运行以下命令
results = service.users().messages().list(userId='me',q="from:xyz@wso2.com", maxResults=10,fields=*).execute()
你会注意到响应是一样的
"id": "1655bb6d0f2b5f8f",
"threadId": "1655bb6d0f2b5f8f"
,
这就是files.list 响应中的所有字段。如果您想了解更多信息,您必须发送message.get
Gmail 配额
因此,Gmail 的配额很大。其中大部分还可以扩展。
【讨论】:
"你不能在线程 id 上发送 message.get 需要 message.id",但尝试它不起作用。他们提到的ID是threadid @DalmTo developers.google.com/gmail/api/v1/reference/users/messages/get @Sathiyakugan 你已经编辑了你的问题,我现在更新了我的答案。 所以即使我在一次查询中获得了 100 个 id 以获取那些我必须再次查询 100 次的字段,不是吗? 基本上。欢迎来到烦人的 Gmail api 开发世界:( 重要提示:如果您需要申请延长配额,请尽早申请,当您达到配额的 80% 时,可能需要一个月才能获得批准。以上是关于Gmail API ID 不工作,但线程 ID 工作的主要内容,如果未能解决你的问题,请参考以下文章
Drive Rest Api正在使用一个电子邮件ID,但不适用于其他gmail ID
GMail API - messages().list() 仅返回消息 ID
Google gmail 列表 API 仅返回 id 和 threadId,根据文档,我没有在消息中收到有效负载