Gmail API 批量获得支持?

Posted

技术标签:

【中文标题】Gmail API 批量获得支持?【英文标题】:Gmail API batch get support? 【发布时间】:2015-04-22 14:26:32 【问题描述】:

我正在使用 Gmail API 进行 WEB HTTP 调用。有没有办法批量获取消息内容?

好像messages.list只返回messageIds,messages.get只支持单条消息查询。

列表 API:https://www.googleapis.com/gmail/v1/users/userId/messages 获取接口:https://www.googleapis.com/gmail/v1/users/userId/messages/id

帮帮我~谢谢!

【问题讨论】:

您可以将它们组合成一个 HTTP 请求,而不是单独发送每个调用。您甚至可以对多个用户或多个 Google API 的请求进行分组。单个批处理请求中的调用次数限制为 100 个。如果您需要进行更多调用,请使用多个批处理请求。在批处理developers.google.com/gmail/api/guides/batch?hl=de-LU 上查看此链接,其中包含示例 GET 请求和 PUT 请求 谢谢SGC,这正是我要找的。我真的希望 Gmail 能更好地支持它,这样我们就不需要手动处理这些多部分 POST 调用了。 【参考方案1】:

你绝对可以批量处理messages.get(),很多问题已经涵盖了它: https://***.com/search?q=%5Bgmail-api%5D+batch

【讨论】:

【参考方案2】:

gmail API 首先只返回messageIds 以防止负载过重。 使用这些 ID,您可以获取单独的完整消息或发送批量请求以获取一堆消息。

得到partialMessages(message ids)后使用这个:

List<Messages> fullMessages = getFullyQualifiedMessages(partialMessages);

private List<Message> getFullyQualifiedMessages(List<Message> partialMessages) 
    try 

        final JsonBatchCallback<Message> callback = new JsonBatchCallback<Message>() 
            public void onSuccess(Message message, HttpHeaders responseHeaders) 
                fullyQualifiedMessageList.add(message);
            

            public void onFailure(GoogleJsonError e, HttpHeaders responseHeaders) 
                // do what you want if error occurs
            
        ;

        BatchRequest batch = mService.batch();
        for (Message message : partialMessages) 
            mService.users().messages().get("me", message.getId()).setFormat("full").queue(batch, callback);
        
        batch.execute();


     catch (IOException e) 
        e.printStackTrace();
    

    Log.d(TAG, "Message" + fullyQualifiedMessageList.size());


    return fullyQualifiedMessageList;

【讨论】:

以上是关于Gmail API 批量获得支持?的主要内容,如果未能解决你的问题,请参考以下文章

从 Gmail API 批量获取超过 10k 封电子邮件的电子邮件发件人

【python实战】批量获得路径规划——高德地图API

Stargate REST API 是不是支持 Cassandra 批量查询?

gmail邮箱怎么批量删除邮件

如何使用 Spring/Servlets 支持批量 Web api 请求处理

zabbix利用api批量添加item,并且批量配置添加graph