gogcliでGoogle Chatのメッセージを送受信する設定手順
結論
gogcliでGoogle Chatを使うには、Google Cloud ConsoleでChat APIを有効化するだけでは足りない。Chat appの「構成」を保存する必要がある。構成を保存すれば gog chat spaces list や gog chat messages send が動くようになる。
背景
gogcli(Google Workspace CLIツール)でGoogle Chatのスペース一覧取得やメッセージ送信を試みたところ、以下のエラーが発生した。
Google API error (404 notFound): Google Chat app not found.
To create a Chat app, you must turn on the Chat API and configure the app in the Google Cloud console.
Chat APIは有効化済みだったため、原因がわかりにくかった。

原因
Google Chat APIはAPIの有効化だけでは使えない。Chat appとしての**構成(Configuration)**を保存する必要がある。これはGoogle Cloud Consoleの「Chat API」→「構成」タブから設定する。
設定手順
1. Google Cloud Consoleで構成タブを開く
Chat APIのページにある「構成」タブをクリックする。

2. 必須フィールドを埋める
| フィールド | 設定値 |
|---|---|
| アプリ名 | gogcli(任意) |
| アバターのURL | 任意のHTTPS PNG画像URL |
| 説明 | CLI tool など |
3. インタラクティブ機能の設定
メッセージの送信もしたい場合は、インタラクティブ機能をオンにして以下を設定する。
- 「スペースとグループの会話に参加する」にチェックを入れる
- 接続設定は「HTTPエンドポイントURL」を選択
- トリガーのURL欄はすべて
https://example.comで埋める(CLIからの利用なら実際のエンドポイントは不要)
4. 公開設定
「このチャットアプリを(ドメイン名)の特定のユーザーとグループが使用できるようにします」にチェックを入れ、自分のメールアドレスを追加する。
5. 保存
Saveボタンをクリックして構成を保存する。
動作確認
スペース一覧の取得
gog chat spaces list
メッセージの送信
gog chat messages send spaces/XXXXXXXX --text "テスト送信です"
注意: フラグは --body ではなく --text。

送信者はユーザー名ではなく、Chat app名(この場合「gogcli」)で表示される。
メッセージの削除(独自実装)
gogcli本家(v0.9.0時点)には chat messages delete が未実装だったため、独自にコマンドを追加した。詳細は gogcliセットアップガイド の「本家にない機能を追加する」セクションを参照。
# メッセージ一覧を新しい順に取得
gog chat messages list spaces/AAAA9qhlGLw --max 10 --order "createTime desc" --account [email protected]
# メッセージを削除
gog chat messages delete spaces/AAAA9qhlGLw/messages/<messageId> --account [email protected] --force
Google Chat上では「メッセージは投稿者によって削除されました(アプリ経由)」と表示される。
API側の削除権限
| 認証方式 | 削除できるメッセージ |
|---|---|
| App認証 | Chat appが送信したメッセージのみ |
| User認証 | 自分が送信したメッセージ。スペースマネージャーなら他人のも可能 |
スレッド形式の投稿
メッセージをスレッドにまとめて投稿できる。
# 親メッセージを送信(新しいスレッドが作られる)
gog chat messages send spaces/AAAA9qhlGLw --text "*【タイトル】*
本文テスト
※スレッドに続きます" --account [email protected]
# 返信にはスレッドIDを指定
gog chat messages send spaces/AAAA9qhlGLw --text "返信テキスト" --thread spaces/AAAA9qhlGLw/threads/<threadId> --account [email protected]
テキスト書式
Google Chat APIはマークダウンの一部をサポートしている。
| 書式 | 記法 | 結果 |
|---|---|---|
| 太字 | *テキスト* | テキスト |
| 斜体 | _テキスト_ | テキスト |
| 取り消し線 | ~テキスト~ | |
| コード | `テキスト` | テキスト |
画像の共有
Google Chat APIはメッセージに画像を直接添付できない(APIの制限)。代わりにDriveにアップロードしてリンクを共有する。
運用フロー:ローカル画像 → Drive → Chatリンク
# 1. ローカル画像をDriveにアップロード
gog drive upload C:\Users\numbe\Pictures\screenshot.png --parent <folderId> --account [email protected]
# 2. ChatスレッドにDriveリンクを投稿
gog chat messages send spaces/AAAA9qhlGLw --text "https://drive.google.com/file/d/<fileId>/view" --thread spaces/AAAA9qhlGLw/threads/<threadId> --account [email protected]
できること・できないこと
| やりたいこと | 対応 |
|---|---|
| ローカル画像をDriveにアップロード | 可能(gog drive upload) |
| Chatにテキスト+Driveリンクを送信 | 可能 |
| Chatに画像ファイルを直接添付 | 不可(Chat APIの制限) |
| Googleドキュメントに画像を挿入 | 不可(gogcli未対応。Docs APIのBatchUpdateが必要) |
| クリップボード画像を直接送信 | 不可(一旦ファイル保存 → Drive upload が必要) |
Drive画像検索の注意点
gog drive search はフルテキスト検索専用で、mimeTypeフィルタに対応していない。画像ファイルを探すには drive ls --query を使う。
# NG: searchはfullText検索のためmimeType指定が効かない
gog drive search "mimeType='image/png'"
# OK: ls --queryならDrive APIクエリ構文がそのまま使える
gog drive ls --query "mimeType='image/png'" --max 10 --account [email protected]
# OK: ファイル名での検索はsearchでも可能
gog drive search "NAAIM" --account [email protected]
まとめ
- Chat APIの有効化だけでは不十分で、Chat appの構成保存が必要
- CLIから使うだけでも構成のフォーム入力は必須(HTTPエンドポイントはダミーURLでOK)
- 公開設定で自分のメールアドレスを追加しないと使えない
- メッセージ送信のフラグは
--text(--bodyではない) - メッセージの削除は本家未実装のため独自に追加した(動作確認済み)
- スレッド形式の投稿は
--threadオプションで対応 - 画像はDriveにアップロードしてリンク共有する運用が現実的
- Drive画像検索は
drive ls --queryを使う(drive searchはフルテキスト検索のみ)