1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

gmailの内容をGoogleスプレッドシートに転記するPythonスクリプト

Posted at

概要

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にアクセスし、プロジェクトを作成。
image.png
image.png

APIの有効化

プロジェクトを選択した状態で、左側のナビゲーションメニューから「APIとサービス」 > 「ライブラリ」を選択。
image.png

「Gmail API」と「Google Sheets API」を検索し、それぞれ有効化。
image.png

image.png

image.png

image.png

OAuth 2.0クライアントIDを作成

「APIとサービス」 > 「認証情報」を選択。
image.png

「認証情報を作成」ボタンをクリックし、「OAuthクライアントID」を選択します。
image.png

「同意画面の構成」を行い、必要な情報を入力。
image.png

image.png

image.png

「保存して次へ」

スコープの設定は変更せずに、「保存して次へ」
image.png

テストユーザーに使用するgmailアドレスを追加して、「保存して次へ」
image.png

再度「認証情報を作成」ボタンをクリックし、「OAuthクライアントID」を選択します。
image.png

アプリケーションの種類として「デスクトップアプリ」を選択し、クライアントIDを作成します。
image.png

作成されたクライアントIDとクライアントシークレットを含むJSONファイル(credentials.json)をダウンロードします。
image.png

スクリプト実行

とあるECサイトの注文確認メールの内容をスプレッドシートに転記するスクリプトを作成してみました。
https://github.com/Littlebit175/pygmail2sheet4ys

$ python3 pygmail2sheet4ys.py

ブラウザが立ち上がるので、テストユーザーに登録したGoogleアカウントでサインイン。
image.png

image.png

「続行」
image.png

※テストユーザーに登録されていないアカウントでログインすると、下図エラーが発生。
image.png

「すべて選択」して「続行」
image.png

ブラウザにThe authentication flow has completed. You may close this window. と表示される。
Pythonスクリプトと同一ディレクトリに、token.jsonが保存される。

参考

Gmail API Python Quickstart
Google Sheets API Python Quickstart

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?