首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以使用google-auth-library进行批量请求吗?

可以使用google-auth-library进行批量请求吗?
EN

Stack Overflow用户
提问于 2021-02-05 10:48:24
回答 1查看 53关注 0票数 0

到目前为止,我使用客户端的方式是这样的

代码语言:javascript
复制
      client = new OAuth2Client(
        process.env.GOOGLE_CLIENT_ID,
        process.env.GOOGLE_CLIENT_SECRET,
        "http://localhost:5000/oauth2callback"
      );

      client.setCredentials({refresh_token: getRefreshToken(user)});
      let url = 'https://www.googleapis.com/gmail/v1/users/me/messages?q=myquery';
      client.request({url}).then((response) => {
        doSomethingWith(response);
      });

由于response包含一个消息ids列表,因此我必须使用users.messages.get来获取每条消息的实际数据。我不喜欢仅仅为了一个查询而做数百个单独的请求。有没有一种方法可以批量处理users.messages.get请求?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-09 15:15:34

您可以使用Google API的batching requests功能。下面是一个示例函数,它接受消息ID数组和客户端作为参数,然后向users.messages.get端点发出批处理请求。

代码语言:javascript
复制
const batchGetMessages = (messageIds = [], oAuth2Client) => {
  const url = 'https://www.googleapis.com/batch/gmail/v1';
  const boundary = 'message_batch_demo';
  const headers = {
    'Content-Type': `multipart/mixed; boundary=${boundary}`
  };

  let data = '';
  for (const messageId of messageIds) {
    data += `--${boundary}\r\nContent-Type: application/http\r\n\r\n`;
    data += `GET /gmail/v1/users/me/messages/${messageId}`;
    data += '\r\n';
  }
  data += `--${boundary}--`;

  return oAuth2Client.request({
    url,
    headers,
    data,
    method: 'POST'
  });
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66056908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档