GmailからFAQ用のメールを取得し、Google Sheetsに保存するGoogle Apps Scriptプロジェクトです。
# Google Apps Script CLI (clasp) のインストール
npm install -g @google/clasp
- Google Apps Script API にアクセス
- 「Google Apps Script API」をオンにする
# Googleアカウントでログイン
clasp login
ブラウザが開くので、Google Apps Scriptを使用するアカウントでログインし、アクセスを許可してください。
cd gmail-fetcher
pnpm install
# 新しいスプレッドシートとバインドされたスクリプトを作成
clasp create --type sheets --title "Gmail Fetcher"
Apps ScriptのIDを.clasp.json
ファイルに保存します。
{
"scriptId": "YOUR_SCRIPT_ID",
}
Apps ScriptのIDは、以下の部分です。
https://script.google.com/home/projects/<Project ID>/edit
src/config.ts
ファイルを編集して、あなたの環境に合わせて設定を変更してください:
// 取り込みたいスレッドについているラベル名
const IncludeLabel = "お問い合わせ";
// 処理済みのスレッドに付けるラベル名
const ExcludeLabel = "processed";
// FAQ加工用ColabのURL(使用する場合)
const colabUrl = '<Your Colab URL here>';
指定したラベルを取り込みたいスレッドに付与してください。
作成されたスプレッドシートに以下のシートを追加してください:
- FAQ: 取得したメールのスレッド情報を保存するシート
- processed: Google Colabで加工したデータを保存するシート
- ヘッダー行:
thread_link
,thread_id
,created_at
,body
# TypeScriptファイルをコンパイルしてGoogle Apps Scriptにプッシュ
clasp push
clasp open
でスクリプトエディタを開く- 必要な権限(Gmail、Sheets)を承認する
main
関数を実行してテストする
- Google Apps Scriptエディタで
main
関数を実行 - または、スプレッドシートのメニューから実行(
onOpen.ts
で設定されている場合)
- Gmail APIには利用制限があります。大量のメールを一度に処理する場合は注意してください
- スプレッドシートの行数制限(最大1000万セル)にご注意ください
- 個人情報を含むメールを扱う場合は、適切なセキュリティ対策を講じてください