概要
gmailの受信メールの内容をGoogleスプレッドシートに転記したくなったので、Github copilotに聞きながらPythonスクリプトを作ってみました。
環境
開発環境
- WSL2 Ubuntu 22.04.5 LTS
- VSCode
必要なPythonライブラリ
$ pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
Google Workspaceの設定
PythonからGoogleのAPIを使えるようにする準備。
Projectの作成
Google Cloud Consoleにアクセスし、プロジェクトを作成。
APIの有効化
プロジェクトを選択した状態で、左側のナビゲーションメニューから「APIとサービス」 > 「ライブラリ」を選択。
「Gmail API」と「Google Sheets API」を検索し、それぞれ有効化。
OAuth 2.0クライアントIDを作成
「認証情報を作成」ボタンをクリックし、「OAuthクライアントID」を選択します。
「保存して次へ」
テストユーザーに使用するgmailアドレスを追加して、「保存して次へ」
再度「認証情報を作成」ボタンをクリックし、「OAuthクライアントID」を選択します。
アプリケーションの種類として「デスクトップアプリ」を選択し、クライアントIDを作成します。
作成されたクライアントIDとクライアントシークレットを含むJSONファイル(credentials.json)をダウンロードします。
スクリプト実行
とあるECサイトの注文確認メールの内容をスプレッドシートに転記するスクリプトを作成してみました。
https://github.com/Littlebit175/pygmail2sheet4ys
$ python3 pygmail2sheet4ys.py
ブラウザが立ち上がるので、テストユーザーに登録したGoogleアカウントでサインイン。
※テストユーザーに登録されていないアカウントでログインすると、下図エラーが発生。
ブラウザにThe authentication flow has completed. You may close this window.
と表示される。
Pythonスクリプトと同一ディレクトリに、token.json
が保存される。
参考
Gmail API Python Quickstart
Google Sheets API Python Quickstart