无法在 Gmail 的列表请求中获取邮件详细信息 API
Impossible to get messages details in a list request with Gmail API
我在连接到 Gmail API 的 rails 应用程序上使用 ruby。当我发出 list
请求以获取一个邮箱的所有消息时,我只为每条消息返回一个 id
和一个 threadId
属性。
我尝试按照 Gmail API Doc 使用 fields
参数获取其他属性(标题、日期...)。它不起作用,无论我是在我的应用程序中使用 google-api-client
gem,还是通过直接 GET
请求。
向请求添加任何其他参数以失败告终。这是有效的 url :
https://www.googleapis.com/gmail/v1/users/me/messages?fields=messages(id,threadId)
我是否被迫为每条消息调用一次或使用批量请求来获取相关数据?好像有点重...
您首先需要list messages like you've done, and then get each message in a separate request。
请求 1
GET https://www.googleapis.com/gmail/v1/users/me/messages?maxResults=1&access_token={ACCESS_TOKEN}
回复 1
{
"messages": [
{
"id": "15fd9f0fe242f975",
"threadId": "15fd9f0fe242f975"
}
],
"nextPageToken": "11889180580605610074",
"resultSizeEstimate": 2
}
请求 2
GET https://www.googleapis.com/gmail/v1/users/me/messages/15fd9f0fe242f975?access_token={ACCESS_TOKEN}
回复 2
{
"id": "15fd9f0fe242f975",
"threadId": "15fd9f0fe242f975",
"labelIds": [
"IMPORTANT",
"CATEGORY_UPDATES",
"INBOX"
],
"snippet": "Tasks tracked last week...",
"historyId": "966691",
...
}
也可以使用batch requests.
将请求总数从1 + n of messages
减少到2
我在连接到 Gmail API 的 rails 应用程序上使用 ruby。当我发出 list
请求以获取一个邮箱的所有消息时,我只为每条消息返回一个 id
和一个 threadId
属性。
我尝试按照 Gmail API Doc 使用 fields
参数获取其他属性(标题、日期...)。它不起作用,无论我是在我的应用程序中使用 google-api-client
gem,还是通过直接 GET
请求。
向请求添加任何其他参数以失败告终。这是有效的 url :
https://www.googleapis.com/gmail/v1/users/me/messages?fields=messages(id,threadId)
我是否被迫为每条消息调用一次或使用批量请求来获取相关数据?好像有点重...
您首先需要list messages like you've done, and then get each message in a separate request。
请求 1
GET https://www.googleapis.com/gmail/v1/users/me/messages?maxResults=1&access_token={ACCESS_TOKEN}
回复 1
{
"messages": [
{
"id": "15fd9f0fe242f975",
"threadId": "15fd9f0fe242f975"
}
],
"nextPageToken": "11889180580605610074",
"resultSizeEstimate": 2
}
请求 2
GET https://www.googleapis.com/gmail/v1/users/me/messages/15fd9f0fe242f975?access_token={ACCESS_TOKEN}
回复 2
{
"id": "15fd9f0fe242f975",
"threadId": "15fd9f0fe242f975",
"labelIds": [
"IMPORTANT",
"CATEGORY_UPDATES",
"INBOX"
],
"snippet": "Tasks tracked last week...",
"historyId": "966691",
...
}
也可以使用batch requests.
将请求总数从1 + n of messages
减少到2