我尝试使用 GET https://www.googleapis.com/gmail/v1/users/userId/messages
但仅获得id和threadId作为响应。
我想显示带有标题和电子邮件的电子邮件列表。是否存在一个API来获取信息或以任何方式获取信息?
答案 0 :(得分:-1)
user messages.list方法仅返回消息ID和线程ID的消息列表。这是API本身的限制,您无能为力。它是免费的API,并且受Google的限制。
{
"messages": [
{
"id": "16d1f7849145662a",
"threadId": "16d1f55457d4e145"
},
{
"id": "16d1f69d541016ee",
"threadId": "16d1f55457d4e145"
},
要获取有关该消息的其他信息,您需要对每条消息执行message.get。
GET https://www.googleapis.com/gmail/v1/users/userId/messages/id
对不起,这是获得大量收益的唯一途径。
您可以尝试批处理batch,一次批处理请求中最多只能有100个呼叫。如果您需要拨打更多电话,请使用多个批处理请求。
Content-Type多部分/混合; boundary = batch_foobarbaz; type = application / http
授权载体ya29.GluBB7_cEfLMThXKuxR_9g8YyjSTLwBHRHdPtiYXwDABKQlrbxEyFqSFsnFYTs5b54W7
接受编码应用程序/ gzip
--batch_foobarbaz
Content-Type: application/http
GET gmail/v1/users/me/messages/16d24956228a98c4
Accept: application/json; charset=UTF-8
--batch_foobarbaz
Content-Type: application/http
GET gmail/v1/users/me/messages/16d24956228a98c4
Accept: application/json; charset=UTF-8
--batch_foobarbaz--
除此之外,您还可以通过smtp server directly。这将需要一种能够处理直接调用邮件服务器的编程语言。
答案 1 :(得分:-1)
Gmail API的设计方式是
q
获取所有感兴趣的电子邮件的ID(可以使用搜索参数GET https://www.googleapis.com/gmail/v1/users/userId/messages
来过滤结果)-就像您已经做过的一样GET https://www.googleapis.com/gmail/v1/users/userId/messages/id
通过邮件ID分别检索每个邮件如果您使用自己选择的语言编写代码,则可以通过循环自动执行此过程。
示例如何使用Apps Script:
function myFunction() {
var myMessages=Gmail.Users.Messages.list("me",{'maxResults': 5 }).messages;
Logger.log(myMessages);
for(var i=0;i<myMessages.length;i++){
var id=myMessages[i].id;
Gmail.Users.Messages.get('me', id).payload.headers.forEach(function(e){
if(e.name=="Subject"||e.name=="From"){
Logger.log(e.name+": "+e.value)
}
}
);
}
}