gws-gmail-watch は何をしますか?
Gmail:新しいメールを監視し、NDJSONとしてストリーミング出力します。
概要
このスキルは、指定されたGmail受信トレイ(またはラベル)を監視し、新しいメールが届いたときにそのメタデータ(件名、送信者、日時、スニペットなど)をNDJSON(改行区切りJSON)の形でストリーム出力します。
使用方法
# デフォルト設定でウォッチを開始
gws-gmail-watch
# 特定のラベルを監視
gws-gmail-watch --label INBOX
# 出力をファイルにリダイレクト
gws-gmail-watch --label UNREAD > emails.ndjson
引数
| 引数 | 説明 | デフォルト値 |
|---|---|---|
--label | 監視するGmailラベル名 | INBOX |
--interval | ポーリング間隔(秒) | 60 |
--max-results | 1回のポーリングで取得する最大メール数 | 10 |
環境変数
| 変数名 | 説明 |
|---|---|
GOOGLE_APPLICATION_CREDENTIALS | Google CloudサービスアカウントのJSONキーファイルパス |
GMAIL_USER_ID | 監視対象のGmailユーザーID(メールアドレス) |
認証
このスキルは、Google Cloudプロジェクトで有効化されたGmail APIと、適切な権限を持つサービスアカウントまたはOAuth2.0認証情報が必要です。
- Google Cloud Console でプロジェクトを作成または選択
- Gmail APIを有効化
- サービスアカウントを作成し、JSONキーをダウンロード
- 環境変数
GOOGLE_APPLICATION_CREDENTIALSにキーファイルのパスを設定
出力形式
スキルは標準出力にNDJSONを書き出します。各行は以下のようなJSONオブジェクトです。
{"id": "18abc123def456", "threadId": "18abc123def456", "from": "[email protected]", "subject": "件名", "date": "2024-01-01T00:00:00.000Z", "snippet": "メールのスニペット..."}
{"id": "18abc789def012", "threadId": "18abc789def012", "from": "[email protected]", "subject": "別の件名", "date": "2024-01-01T00:01:00.000Z", "snippet": "別のメールのスニペット..."}
注意事項
- Gmail APIには割り当て制限(クォータ)があります。頻繁なポーリングは制限に達する可能性があるため、適切なインターバルを設定してください。
- サービスアカウントを使用する場合、G Suite / Google Workspaceドメイン全体の委任が必要な場合があります。