【问题标题】:Gmail API batch get support?Gmail API 批量获得支持?
【发布时间】: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 调用了。

标签: rest google-api gmail batch-processing gmail-api


【解决方案1】:

你绝对可以批量处理messages.get(),很多问题已经涵盖了它: https://stackoverflow.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;
    }
    

    【讨论】:

      猜你喜欢
      • 2023-03-18
      • 2018-12-02
      • 2017-02-05
      • 2014-10-22
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 2018-05-21
      相关资源
      最近更新 更多