在API调用次数最少的情况下,在android中通过带有时间戳的联系人/emailId获取消息的最佳方式是什么?
您可以列出发送到特定电子邮件地址的邮件:
请求
q = to:example@gmail.com OR from:example@gmail.com
GET https://www.googleapis.com/gmail/v1/users/me/messages?q=To%3Aexample%40gmail.com+OR+from%3Aexample%40gmail.com&access_token={YOUR_API_KEY}
响应
{
"messages": [
{
"id": "1516c4a48a1d6ec9",
"threadId": "1516c3bc5769405d"
},
{
"id": "1516c46d828b2470",
"threadId": "1516c3bc5769405d"
}, ...
],
"resultSizeEstimate": 6
}
然后,你必须单独获取这些消息,只需询问时间戳,如果这就是你所需要的(这可以作为一个单独的http-request和一个batch-request来完成,但仍然会从API配额中获得同样多的分数)
请求
fields = internalDate
GET https://www.googleapis.com/gmail/v1/users/me/messages/1516c4a48a1d6ec9?fields=internalDate&access_token={YOUR_API_KEY}
响应
{
"internalDate": "1449220786000"
}
internalDate
表示消息存储在Google的时间,单位为自epoch以来的毫秒。