Emp*_*yee 2 api google-api gmail-api
我在Google Apps脚本中使用Gmail API(基本上是Javascript),我需要尽可能少地调用API,以提高效率和速度.
我正在使用Users.messages:list列出用户邮箱中的消息,响应中包含一个名为的数组messages,对于每条消息,它包含一个id和一个threadId,如下所示:
"messages": [
{
"id": "152b93b1111c33e2",
"threadId": "152b922266c33e2"
},
{
"id": "152b93338c98cb3",
"threadId": "152b922266c33e2"
} ...
Run Code Online (Sandbox Code Playgroud)
但我需要响应以包含有关每条消息的更多信息,这样我就不必单独创建Users.messages:获取每条消息的调用.
Users.messages:list页面上的API Explorer 表示您可以使用fields参数" 指定要包含在部分响应中的字段 ".
当我单击" 使用字段编辑器 "选择我需要的三个项目时,它会将以下内容填入该字段:
messages(id,internalDate,payload)
Run Code Online (Sandbox Code Playgroud)
然后当我执行命令时,它显示GET命令应该如下所示:
https://www.googleapis.com/gmail/v1/users/test@test.com/messages?fields=messages(id%2CinternalDate%2Cpayload)&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
但是,messages结果中的数组不包括internalDate或payload字段.它只包含消息id,如下所示:
"messages": [
{
"id": "152b93b1111c33e2"
},
{
"id": "152b93338c98cb3"
} ...
Run Code Online (Sandbox Code Playgroud)
它也不包括threadId了,但它继续包含threadId如果我选择它作为其中一个字段,如下所示:
messages(id,threadId)
Run Code Online (Sandbox Code Playgroud)
并且URL看起来像这样......
https://www.googleapis.com/gmail/v1/users/test@test.com/messages?fields=messages(id%2CthreadId)&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
结果看起来与上面的第一个结果完全一样,我们没有使用fields参数.
所以我知道的fields参数是真的在做事情.
考虑到这可能只是API Explorer的限制,我尝试在Google Apps脚本中进行API调用,但它仍然不包括我需要的字段.
你快到了.
当上市的消息时,id和threadId每个消息的是你所得到的.然后,您必须单独获取每条消息.
如果您只是想要internalDate消息,那么应该在fields参数中指定它.
请求
GET https://www.googleapis.com/gmail/v1/users/me/messages/152b792a91c9c391?fields=internalDate&key={YOUR_API_KEY}
Run Code Online (Sandbox Code Playgroud)
响应
{
"internalDate": "1454778787000"
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1185 次 |
| 最近记录: |