Google Chat APIとは?Webhook・Chatアプリ・Apps Scriptの違い

Google Chat APIでできることを、Webhook・Chatアプリ・Apps Script・アプリ認証とユーザー認証の違いから解説。通知、Bot、カード、承認、再送・重複対策まで、過剰開発を避けるための切り分けを整理します。

著者: SakuraAI 編集部監修: 湯田英也公開: 最終更新: 12
目次
30秒でわかる結論

Google Chatの自動化は、特定スペースへの一方向通知ならWebhook、メンション・ボタン・ダイアログなど双方向処理ならChatアプリ、複数スペースやメンバーを操作するならChat APIを使います。Apps Scriptはこれらと並ぶ通知方式ではなく、Webhook送信やChatアプリを動かす実行基盤です。実装前に、通知か操作か、アプリ自身か利用者の代理かを決めると過剰開発を防げます。

本記事は2026年6月28日時点のGoogle公式情報をもとにしています。Chat APIの機能、OAuthスコープ、クォータ、WebhookやChatアプリの利用条件は変更される可能性があります。実装前に公式ドキュメントとGoogle Workspace管理者設定を確認してください。

Expert Q&A

Google Chat APIを使う前に確認すること

湯田英也SakuraAI株式会社 代表 / ソフトウェアエンジニア

Q. 最初からChatアプリを作るべきですか?

A. 一方向通知だけならWebhookから始めます。問い合わせへの応答、承認ボタン、入力フォームが必要になった時点でChatアプリへ広げます。要件がないのに認証と実行環境を増やす必要はありません。

Q. Apps ScriptとChat APIはどちらを選びますか?

A. 比較するものではありません。Apps Scriptはコードを動かす場所、Chat APIはChatを操作するインターフェースです。Apps ScriptからChat APIを呼ぶ構成もあります。

Q. API連携で一番見落とされる点は?

A. 再送と重複です。タイムアウト後に再試行すると、同じ通知や承認処理が二度走ることがあります。元データIDと処理済みIDを持ち、何度呼ばれても結果が重複しないようにします。

Gmailの重要メールを担当スペースへ流す。フォーム回答を通知する。ボタンで承認する。社内FAQへ回答する。これらはすべてGoogle Chat連携ですが、必要な仕組みは同じではありません。

現行のGoogle公式ドキュメントでは、対話するBotはGoogle Chatアプリとして説明されています。また、Apps ScriptはWebhookやChat APIと競合する方式ではなく、コードを動かす選択肢の一つです。この違いを混同したまま作り始めると、通知したいだけなのに認証まわりで沼にはまる、という遠回りになりがちなので、まず用語と役割から整理します。

Google Chat API・Webhook・Chatアプリの関係

仕組み主な役割受信・操作認証向く用途
受信Webhook登録したスペースへ投稿送信のみ。ユーザー操作は受け取れない秘密のWebhook URL監視通知、定期レポート、簡易連携
ChatアプリChat内で対話・操作メッセージ、コマンド、カード、ダイアログへ応答構成と用途に応じてアプリ・ユーザー認証FAQ、申請、承認、業務Bot
Chat APIChatリソースをプログラム操作メッセージ、スペース、メンバーなどOAuth 2.0 / サービスアカウント動的な通知先、スペース管理、システム連携
Apps ScriptGoogle環境でコードを実行Webhook送信、API呼び出し、イベント処理Googleが実行認可を管理Gmail・Forms・Sheets起点の小規模連携
外部実行環境API処理と業務ロジックを実行Chatと外部システムを接続Cloud IAM、OAuthなど高可用性、複雑な連携、詳細な監視

WebhookでもChat APIのメッセージ作成エンドポイントへPOSTしますが、用途と認証が簡略化されています。Webhookは登録したスペース専用で、ユーザーからの返信やクリックを受け取れません。この表の一番のポイントは、機能の多さで選ばないこと。要件がどこまでなら、どこで止めるかを先に決めるのが、過剰開発を避ける近道です。

用途別に何を選ぶか

Decision chart

Google Chat連携の実装開始点

要件の単純さ、実装量、運用負荷、誤操作時の影響をもとにSakuraAIが整理した初期選択スコアです。Google公式の評価ではありません。

監視・バッチ完了通知:Webhook98/100

一方向で通知先が固定なら最小構成

Forms・Gmail通知:Apps Script + Webhook94/100

Googleイベント起点の小規模連携に向く

複数スペースへの動的通知:Chat API82/100

通知先・認証・メンバーシップの設計が必要

承認・入力フォーム:Chatアプリ78/100

カード、ボタン、ダイアログの処理が必要

社内FAQ・ヘルプデスク:Chatアプリ70/100

権限、根拠、有人引き継ぎまで設計する

全社スペース管理:Chat API45/100

管理権限、監査、失敗時の影響が大きい

スコアは実装の優先度ではなく、その用途で最初に選びやすい構成を示します。

通知だけの要件にChatアプリを作ると、認証、公開範囲、受信エンドポイント、イベント処理の運用が増えます。反対に、Webhookで承認を作ろうとしても、ユーザー操作を受信できません。

Webhook:固定スペースへの一方向通知

受信Webhookは、外部サービスからGoogle Chatスペースへ非同期の一方向通知を送る仕組みです。ユーザーはWebhookへ話しかけたり、接続先の処理をボタンで呼び出したりできません。

最小の送信例は次の通りです。

curl -X POST "$GOOGLE_CHAT_WEBHOOK_URL" \
  -H "Content-Type: application/json; charset=UTF-8" \
  -d '{"text":"[INFO] 日次処理が完了しました"}'

Webhook URLには keytoken が含まれます。コードへ直書きせず、環境変数やシークレット管理へ置きます。URLが漏れた場合は、該当Webhookを作り直して送信元の設定を更新します。

Webhook URLをマスキングせずログへ出力しないでください。URLを知る相手は、そのスペースへ投稿できる可能性があります。公開リポジトリ、エラーメール、Chat本文にも貼らないようにします。

Webhookが向くケース

  • 監視アラートや障害通知
  • バッチ、バックアップ、デプロイの結果
  • Googleフォームの新規回答
  • Gmailの特定ラベルへの受信通知
  • 日次・週次の集計レポート

Webhookは threadKey を使ったスレッドへの投稿にも対応します。同じ案件やアラートをスレッドへまとめると、スペースの流量を抑えられます。

Chatアプリ:メッセージ・ボタン・ダイアログへ応答

Chatアプリは、ユーザーのメッセージ、メンション、コマンド、カードのボタン、ダイアログ送信などをインタラクションイベントとして受け取ります。

入力Chatアプリの応答例実務用途
メッセージ・メンション質問へ回答、分類、担当通知社内FAQ、問い合わせ受付
コマンド決まった処理を起動レポート取得、申請開始
カードのボタン状態更新、確認画面を開く承認、担当引受、解決確認
ダイアログ構造化された入力を受け付ける申請、問い合わせ、差戻し理由
アプリホーム利用者ごとの一覧や入口を表示未処理タスク、ヘルプメニュー

Webhookでも表示用のカードを送れますが、接続先アプリへ操作を返す会話型の処理はできません。クリック後に状態を変える場合はChatアプリとしてイベントを受け取ります。

申請_確認
申請Chatアプリ11:04
申請の確認が必要です 申請ID: REQ-2048 状態: 内容確認待ち 担当: 承認担当 期限: 6/30 17:00 詳細と添付は申請画面で確認してください
Chatでは状態と次アクションを示し、重要な承認は対象内容を確認できる画面へ誘導する例

Google Chat APIでできること

Chat APIは、認証されたアプリやユーザーからGoogle Chatのリソースを操作します。代表的な用途は次の通りです。

対象主な操作用途例
メッセージ作成、取得、更新、削除通知、カード更新、状態表示
スペース作成、取得、更新、検索案件・障害対応スペースの準備
メンバー追加、取得、削除プロジェクト参加者の管理
リアクション作成、一覧、削除簡易な確認状態の取得
添付アップロード、取得Chatアプリのファイル連携
イベント購読、取得メッセージやメンバー変更への応答

すべての操作が同じ認証方式で使えるわけではありません。APIメソッドごとに、アプリ認証、ユーザー認証、管理者権限、必要なスコープを公式リファレンスで確認します。

アプリ認証とユーザー認証の違い

観点アプリ認証ユーザー認証
主体Chatアプリ自身OAuthで認可した利用者
主な資格情報サービスアカウントOAuth 2.0アクセストークン
見える範囲アプリのメンバーシップと権限の範囲利用者が持つ権限の範囲
向く用途Bot投稿、アプリとしてのスペース操作利用者代理の作成・管理、他Workspace API連携
注意点秘密鍵、管理者承認が必要なスコープ同意画面、トークン、利用者ごとの権限

ユーザー認証を使えば、その利用者の代理でスペース作成やGmail・Calendarなど他のWorkspace API操作もできます。一方、必要以上に広い権限を要求すると、情報漏えい時の影響も大きくなります。

ドメイン全体の委任は、利用者ごとの同意を省く便利機能ではありません。管理者権限でユーザーデータへアクセスできるため、対象業務、スコープ、監査、資格情報の管理を厳しく設計します。

Apps Scriptは実行基盤として選ぶ

Apps Scriptには主に3つの使い方があります。

  1. Gmail、Forms、Sheets、CalendarなどのイベントからWebhookへPOSTする
  2. 高度なChatサービスやHTTP経由でChat APIを呼ぶ
  3. Chatアプリのイベントを受けて応答する
実行基盤強み弱み向く規模
Apps ScriptWorkspace連携が早く、サーバー管理が少ない実行時間、クォータ、監視、デプロイ管理に制約小規模な社内自動化
Cloud Run / Functionsなどスケール、監視、ネットワーク、デプロイを管理しやすいCloud構成と運用が必要外部連携、複雑なChatアプリ
既存業務システム元データと処理を同じ場所で管理できるChat認証とAPI実装が必要既存サービスからの通知・操作
ノーコード・ワークフロー単純な連携を短時間で作れる複雑な例外、監査、独自認証に限界定型通知と簡易承認

Apps Scriptで始め、処理量や監視要件が上がったら外部実行環境へ移す方法もあります。最初から将来の全機能を見込んで大きく作る必要はありません。

メッセージ設計は通知文より先に決める

要素含める内容理由
種別・重要度障害、申請、問い合わせ、定期報告など読む優先順位を判断できる
対象ID案件ID、申請ID、アラートID重複防止と追跡に使える
要点何が起きたか全文を開かず概要を把握できる
担当者次に対応する人通知だけで放置されない
期限・状態いつまでに何をするか次アクションを明確にする
正本リンク元システムやDriveのURLChatを正本にしない
操作開く、担当する、差戻すなど文章返信による表記揺れを減らす

Chatにデータ全文を複製せず、判断に必要な要点と正本リンクを載せます。機密情報、個人情報、認証情報は、スペースのメンバーと履歴設定も考慮して絞ります。

スレッドと通知先を設計する

設計向く内容注意点
1イベント1投稿単発の申請・問い合わせ件数が多いとスペースが流れる
1案件1スレッド障害、案件、問い合わせの継続更新一貫した threadKey を持たせる
日次集約投稿件数・ステータスの定期報告緊急事象を集約待ちにしない
担当スペース分割部門や業務ごとの通知スペース乱立とメンバー管理に注意
DM通知個人だけが対応する情報チームから進捗が見えなくなる

すべてを1つのスペースへ流すより、誰が行動する通知かで分けます。個人へのDMだけで完結すると引き継げないため、正本側に担当と状態を残します。

エラー・クォータ・再送を前提にする

Google公式ドキュメントでは、Chat APIの時間ベースの制限超過時に 429 が返り、指数バックオフで再試行するよう案内されています。2026年6月28日時点では、同一スペースへの書き込みは原則1秒あたり1回の制限があります。

複数の通知元が同じスペースへ集中する場合は、送信キューで順番を制御します。リトライは無限に続けず、回数上限と失敗通知を持たせます。

失敗対応
400系の不正リクエスト自動再試行せず、ペイロードとコードを確認
401403認証情報、スコープ、メンバーシップを確認
404スペース、メッセージ、Webhookの削除を確認
429指数バックオフし、送信量を制御
500系・ネットワーク上限つきで再試行し、失敗キューへ保存
タイムアウト成功済みの可能性を考え、元データIDで重複防止

Chatアプリへのインタラクションイベントも、通信状況により同じイベントが複数回届く可能性があります。承認や状態更新では、操作IDを保存し、処理済みなら同じ結果を返します。

処理が長い場合は、同期応答の中で全部を終わらせず、受付を返して非同期処理後にChat APIで結果を投稿します。

セキュリティチェックリスト

確認項目対策
Webhook URLシークレット管理、ログ除外、漏えい時の再発行
サービスアカウント必要最小権限、秘密鍵の安全な保管、定期見直し
OAuthスコープ機能に必要な範囲だけ要求
Chatスペースメンバー、外部参加、履歴、投稿対象を確認
イベント入力操作者、対象ID、許可された状態遷移を検証
ログ本文や秘密情報を不要に記録しない
管理者権限利用目的、承認、監査、失効手順を明確にする
障害対応停止方法、再処理、通知先、担当者を決める

導入手順

1. 通知か操作かを決める

ユーザー入力を受けない固定スペースへの通知ならWebhook、メンションやボタンを受けるならChatアプリです。複数スペースやメンバー操作が必要ならChat APIの認証を設計します。

2. 正本と元データIDを決める

Chat投稿を正本にせず、元システムのIDとリンクを持たせます。通知、再送、更新、削除を同じIDで追跡します。

3. 実行基盤を選ぶ

GmailやForms起点の小規模連携はApps Script、外部サービスや詳細監視が必要なら既存システムやCloud実行環境を選びます。

4. 認証・スペース・権限を設定する

アプリ認証とユーザー認証を使い分け、スコープとメンバーシップを最小化します。テスト用スペースとテストユーザーで検証します。

5. 失敗と重複を試験する

ネットワーク失敗、429、削除済みWebhook、権限不足、同一イベント再送を意図的に確認します。成功ケースだけで本番へ出しません。

6. 指標を見て運用する

評価項目見る内容
配信成功率正常にChatへ届いた割合
通知遅延元イベントから投稿までの時間
重複投稿同じ元データIDで複数投稿された件数
再試行・失敗HTTPコード別の件数と最終結果
未対応通知後も担当・状態が更新されない件数
操作エラー権限不足、無効な状態遷移、二重操作
通知量スペース・種別ごとの投稿件数

よくある失敗

失敗起きること回避策
Apps ScriptとWebhookを同列比較する実行場所と通知方式が混ざる要件、方式、実行基盤を分ける
通知だけなのにChatアプリを作る認証と運用が過剰になるWebhookから始める
Webhookで承認を作ろうとするユーザー操作を受け取れないChatアプリでイベント処理する
Webhook URLをコードへ書く漏えい時に第三者が投稿できるシークレット管理へ置く
失敗時に即時連続リトライするクォータ超過を悪化させる指数バックオフと上限を設ける
タイムアウト後に無条件再送する通知・承認が重複する元データIDと操作IDで冪等化する
Chatを正本にする更新・監査・検索が難しくなる元システムへ状態と履歴を残す

SakuraAIで支援できること

SakuraAIは、Google Chat APIを使うこと自体を目的にせず、Webhookで足りる通知、Chatアプリが必要な操作、Apps Scriptで動かせる処理、外部実行環境が必要な連携を切り分けます。

認証、カード・ダイアログ、スレッド、メッセージ設計、再送・重複防止、クォータ、監視、運用停止まで含めて実装します。小さな通知から始め、必要な機能だけ段階的に広げます。

Q. WebhookからChatアプリへ移る目安は?

A. ユーザーの入力や操作を受け取りたくなったときです。メンション応答、担当引受、承認、差戻し、入力フォームが必要ならChatアプリを検討します。通知先が増えただけならChat APIでの送信も比較します。

Q. 実装が成功した状態とは?

A. 通知が届くだけでなく、重複せず、担当者が次の行動を取れ、失敗時に再処理できる状態です。送信件数ではなく、未対応、遅延、エラー、重複を測ります。

Q. 本番前に最低限試すことは?

A. 権限不足、削除済みスペース、429、ネットワーク失敗、同じイベントの再送です。承認系では、同じボタンが二度処理されないことと、権限のない人が操作できないことも確認します。

よくある質問

Google Chat APIとWebhookはどう違いますか?

Google Chat APIはメッセージ、スペース、メンバーなどを操作する公式APIです。受信Webhookは、登録した1つのスペースへ一方向に通知する簡易な仕組みで、ユーザーのメッセージやボタンクリックを受け取れません。通知だけならWebhook、対話や動的な操作が必要ならChatアプリを使います。

BotとChatアプリは同じものですか?

以前Botと呼ばれていたものを含め、Googleの現行ドキュメントではChatアプリという表現が中心です。メンション、コマンド、カード、ダイアログへ応答する双方向の仕組みを指します。

Apps ScriptだけでGoogle Chat連携できますか?

できます。ただしApps Scriptは通知方式ではなく実行基盤です。Apps ScriptからWebhookへPOSTする、Chat APIを呼ぶ、Chatアプリの受信処理を動かすなど複数の使い方があります。

アプリ認証とユーザー認証はどう使い分けますか?

アプリ認証はサービスアカウントなどを使い、Chatアプリ自身として処理します。ユーザー認証はOAuth 2.0で利用者の権限を使い、その人の代理でスペース作成や他のWorkspace API操作を行います。必要な機能から最小権限を選びます。

Webhook URLを漏らした場合はどうすればよいですか?

Webhook URLには秘密のキーとトークンが含まれます。該当Webhookを無効化・再作成し、シークレット管理の値を更新します。コード、ログ、Chat本文、公開リポジトリへURLを残さないでください。

参考・一次情報

湯田英也

Reviewed by

監修者: 湯田英也

SakuraAI株式会社 代表 / ソフトウェアエンジニア

Google Chatの導入・移行、Google Workspace連携、Google Chat API / Webhook / Bot、Gmail・Meet・Drive・Calendarをまたぐ業務自動化領域を監修しています。

Google公式情報、各プロダクトの仕様、実務での運用・開発観点をもとに、企業が導入判断・運用設計・自動化設計を行える内容になるよう確認しています。

開発相談

Google Chat Bot・Webhook開発を相談する

通知・承認・問い合わせ連携のBotとAPI実装を支援します。

開発を相談する