gpt4 book ai didi

用于获取消息的 Gmail REST api 批处理支持

转载 作者:行者123 更新时间:2023-12-04 23:18:00 24 4
gpt4 key购买 nike

我们需要在我们的项目中从谷歌客户端库切换到 Gmail REST api,我遇到了 batch() 的问题,因为它在 REST api 中不可用 - 您只能获取消息的 id 列表,然后获取每条消息一一使用它的id。
如果我们使用那个 gmail 库,一切似乎都清楚了。我们创建一个批处理对象,然后在其中将每个 GET 请求排队。我们不必关心它是如何在内部实现的。
目前我正在尝试做一些 POC 并且我正在测试这些建议 https://developers.google.com/gmail/api/guides/batch
与 postman ,但没有运气..

我收到了 400 个错误的请求。
Postman(或其他应用程序)中正确的请求正文应该如何?
下一步将在 Java 中实现多部分请求并使用 RestTemplate 发送 POST,但我需要先在 Postman 中呈现一些 POC。

我在这个截图上设置它 - >
Postman

我究竟做错了什么?:)

最佳答案

你很近。这是一个工作示例:

请求

POST https://www.googleapis.com/batch
Content-Type: multipart/mixed; boundary="foo_bar"
Authorization: Bearer {ACCESS_TOKEN}

--foo_bar
Content-Type: application/http

GET /gmail/v1/users/me/messages/152d10540c21bd07

--foo_bar
Content-Type: application/http

GET /gmail/v1/users/me/messages/152d1050d666d7ad

--foo_bar--

回复
--batch_7Xp52oGIwpA_AAEAc7ERnGU
Content-Type: application/http

HTTP/1.1 200 OK
ETag: "A-DdBGA6g-wV4rIZCu5Hcm3JQpY/w2hzEg9kqXFH7AEJ-oSc-y10HNQ"
Content-Type: application/json; charset=UTF-8
Date: Thu, 11 Feb 2016 16:02:06 GMT
Expires: Thu, 11 Feb 2016 16:02:06 GMT
Cache-Control: private, max-age=0
Content-Length: 2809

{
"id": "152d10540c21bd07",
"threadId": "152d1050d666d7ad",
"labelIds": [
"SENT",
"INBOX",
"IMPORTANT"
],
"snippet": "Likewise buddy.", ...
}

--batch_7Xp52oGIwpA_AAEAc7ERnGU
Content-Type: application/http

HTTP/1.1 200 OK
ETag: "A-DdBGA6g-wV4rIZCu5Hcm3JQpY/7v2nqQFBDmEHVvEQoboiwSidilE"
Content-Type: application/json; charset=UTF-8
Date: Thu, 11 Feb 2016 16:02:06 GMT
Expires: Thu, 11 Feb 2016 16:02:06 GMT
Cache-Control: private, max-age=0
Content-Length: 1752

{
"id": "152d1050d666d7ad",
"threadId": "152d1050d666d7ad",
"labelIds": [
"SENT",
"INBOX",
"IMPORTANT"
],
"snippet": "Nice to meet you.", ...
}

--batch_7Xp52oGIwpA_AAEAc7ERnGU--

您不必在批处理的每个部分中指定主机,在 Authorization header 中提供访问 token 就足够了。您不必自己指定 Content-Length,也不要忘记用 " 包裹边界字符串。 .

然后你只需要解析每个部分的 JSON 就完成了。

关于用于获取消息的 Gmail REST api 批处理支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35343365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com