何らかのトリガーが発生した時に、Gmailへ送信する

何かしら動かしてるプログラムからのトリガー発生時、Gmailへ送信する。

2022年5月30日以降「安全性の低いアプリ」とされるメールクライアントでGmailのPOP受信・SMTP送信は出来なくなりました。
ThunderbirdではOAuthでなければエラーがでます。Pythonでもsmtplibでは送信できなくなりました。
それ以降Gmail APIを使っています。
当時のGoogle Cloudのスクリーンショットが見当たらない為、文字で割愛させてください。

*注 Gmailのアクセストークンは7日しか有効ではありません。
7日後は 'invalid_grant: Token has been expired or revoked.', {'error': 'invalid_grant', 'error_description': 'Token has been expired or revoked.'} が発生します。
例外処理はSeleniumなどで潰してください。

Google Cloud
API とサービスから
OAuth 2.0 クライアント ID 種類
デスクトップアプリ

OAuth 同意画面
アプリ名                 適当
ユーザーサポート         自身のGmail
デベロッパーの連絡先情報 自身のGmail
Gmail のスコープ          ../auth/gmail.modify
テストユーザー           自身のGmailでも

認証情報→OAuth 2.0 クライアント ID
操作からダウンロードを押します。
client_secret_**************************.apps.googleusercontent.com.json
というのがダウンロードされたと思うのでcredentials.jsonとでもリネームしてください。

 

初回時はコンソールに認証URLが出るので、Microsoft Edgeで認証してください。
自分の環境だとChromeの場合、エラーが発生しました。もう一度お試しください。がでて認証出来ませんでした。

このような画面が表示されます。

続行を押します。

引き続き続行を押します。

最後に The authentication flow has completed. You may close this window. が表示されたら完了です。