CRON Node.js Gmail API script



如何正确设置发送电子邮件的Gmail API脚本?

我即将使用这种方法,并开始从这个快速入门指南构建我的脚本。

有没有其他方法可以在不使用OAuth2验证的情况下做到这一点?还是一种一劳永逸的验证方法?

在应用程序中使用Gmail APi时,您需要使用OAuth 2.0,因为所有对Gmail APi的请求都必须由经过身份验证的用户授权。如果你注意到快速启动,这里有一个步骤,你需要创建一个凭据/Outh客户端ID,使这个API工作。

有关更多信息,还有另一种方法可以使用Gmail授权您的应用程序。你可以在Google+登录的帮助下完成这项工作,它为你的应用程序提供了"使用谷歌登录"的身份验证方法。

在向GMail请求授权时,OAuth 2.0提供一个访问令牌和一个刷新令牌。为了避免每次都进行验证,请存储访问令牌。使用刷新令牌在新访问令牌过期后获取该令牌(访问令牌每一小时过期一次(。

点击此处了解此过程:https://developers.google.com/identity/protocols/OAuth2

我找到了使用JWT授权OAuth2的解决方案。您需要有管理员帐户才能创建域范围的委派服务帐户。然后在开发人员控制台中,您需要下载服务密钥JSON文件,并将其作为凭据加载。

首先获取所有用户如下:(这里你需要使用具有管理目录权限的帐户(

const google = require('googleapis');
const gmail = google.gmail('v1');
const directory = google.admin('directory_v1');
const scopes = [
  'https://www.googleapis.com/auth/gmail.readonly',
  'https://www.googleapis.com/auth/admin.directory.user.readonly'
];
const key = require('./service_key.json');
var authClient = new google.auth.JWT(
  key.client_email,
  key,
  key.private_key,
  scopes,
  "authorized@mail.com"
);
authClient.authorize(function(err, tokens){
  if (err) {
    console.log(err);
    return;
  }
  directory.users.list(
    {
      auth: authClient,
      customer: 'my_customer',
      maxResults: 250,
      orderBy: 'email'
    }, (err, resp) => {
    if (err) {
      console.log(err);
      return;
    }
    console.log(resp);
  });
});

然后,您需要获取线程列表(每个请求(页(100个(。对于每个线程对象,您需要为全线程调用get方法。当使用Gmail API时,授权为您想从中获取电子邮件的用户。在请求中作为userId使用值'me'

相关内容

  • 没有找到相关文章

最新更新