電子メールを送信するGmail APIスクリプトを正しく設定するにはどうすればよいですか?CRON Node.js Gmail APIスクリプト
私はthis methodを使用しようとしており、this quickstartガイドからスクリプトを作成し始めました。
OAuth 2検証を使用せずにこれを行う別の方法はありますか?または、一度すべてを検証する方法ですか?
電子メールを送信するGmail APIスクリプトを正しく設定するにはどうすればよいですか?CRON Node.js Gmail APIスクリプト
私はthis methodを使用しようとしており、this quickstartガイドからスクリプトを作成し始めました。
OAuth 2検証を使用せずにこれを行う別の方法はありますか?または、一度すべてを検証する方法ですか?
私はのOAuth2を認証するためにJWTを使用して解決策を見つけました。 ドメイン全体の委任サービスアカウントを作成するには、管理者アカウントが必要です。デベロッパーコンソールで、資格情報としてロードするサービスキーJSONファイルをダウンロードする必要があります。そして、あなたは(リクエスト(ページ)あたり100)をスレッドの一覧を取得する必要があります(ここではあなたがadminディレクトリの権限を持つアカウントを使用する必要があります)
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,
"[email protected]"
);
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);
});
});
:
まず、このようなすべてのユーザーを取得します。そして、各スレッドオブジェクトに対して、フルスレッドのためにメソッドを取得する必要があります。 Gmail APIを使用する場合は、メールを取得するユーザーとして承認します。リクエストでは、userId
の使用値'me'
となります。
あなたのアプリでGmail APiを使用するには、Gmail APIへのすべてのリクエストに認証されたユーザーが承認する必要があるため、OAuth 2.0を使用する必要があります。 quickstartに気づいた場合は、このAPIを動作させるために資格情報/ OuthクライアントIDを作成する必要があります。
詳細については、authorize your app with Gmailの別の方法があります。あなたのアプリに「Googleでログインする」認証方法を提供するGoogle+ Sign-inの助けを借りて行うことができます。
OAuth 2.0は、Gmailからの承認を求めている間に、1つのアクセストークンと1つのリフレッシュトークンを与えます。毎回検証を避けるには、アクセストークンを保管してください。有効期限が切れた後に新しいアクセストークンを取得するには、リフレッシュトークンを使用します(アクセストークンは1時間ごとに有効期限が切れます)。ここでは、このプロセスについて
私はこのスクリプトをサーバからCRONとして実行しようとしています。基本的には自動的に特定の間隔で実行されます。電子メールにドメイン全体の委任を使用し、会社ドメイン内の他のアカウントからの認証を避けることは可能ですか? – Kunok