我正在使用连接到Gmail API的rails应用程序上的ruby。当我发出list
请求以获取一个邮箱的所有邮件时,我只会为每封邮件返回id
和threadId
属性。
我尝试使用fields
参数关注Gmail API Doc以获取其他属性(标题,日期...)。无论我在我的应用中使用google-api-client
gem,还是直接GET
请求,它都无法使用。
向请求添加任何其他参数以失败告终。这是有效的网址:
https://www.googleapis.com/gmail/v1/users/me/messages?fields=messages(id,threadId)
我是否被迫为每封邮件拨打一个电话或使用批量请求获取相关数据?看起来有点沉重......
答案 0 :(得分:2)
首先需要list messages像你一样,然后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。