HowTo · OpenClaw · Google Chat · 多ノード · 通知

2026 OpenClaw MeshMac 実践:Google Chat スペース Webhook で多ノードビルド状態をブロードキャストする最小再現手順

2026年4月8日 Meshmac 読了目安 約7分

MeshMac 多ノードの CI 結果を一つの Google Chat スペースへ集約するゲートウェイ優先手順です。OpenClaw 2026 の立ち上げは マルチノードデプロイガイド、ビルダーからのイベント送出は タスクキュー同期 と同型にし、Chat への POST はゲートウェイのみ多チャネル通知は正規化キーを共通のまま、送信先と JSON だけ Teams 版Mattermost や Matrix に差し替えます。

ゲートウェイのインストールとトークン

出口は一台に固定し、OPENCLAW_CONFIG_ROOT とオンボーディング後にデーモンと CI の環境を揃えます。Webhook は Git 禁止。/etc/openclaw/secrets.d/google-chat/build-status.url0440root:openclaw-notify など通知専用グループのみ読取にします。

チェックポイント A:プレースホルダを実 URL に置換して実行。

sudo install -d -m 0750 -o root -g openclaw-notify /etc/openclaw/secrets.d/google-chat
sudo sh -c 'umask 077; cat > /etc/openclaw/secrets.d/google-chat/build-status.url' <<'EOF'
https://chat.googleapis.com/v1/spaces/SPACE/messages?key=KEY&token=TOKEN
EOF
sudo chown root:openclaw-notify /etc/openclaw/secrets.d/google-chat/build-status.url
sudo chmod 0440 /etc/openclaw/secrets.d/google-chat/build-status.url

Google Chat Incoming Webhook の設定

スペースに「Incoming Webhook」を追加し URL を一度だけ取得。keytokenbearer 同様に扱い、ステージングと本番はスペース分離。

チェックポイント B:デーモンと同じ HTTPS_PROXY で TLS 切断がないか(404 は可、ハンドシェイク失敗・403 は不可)。

export HTTPS_PROXY="${HTTPS_PROXY:-}"
curl -sS -o /dev/null -w "%{http_code}\n" -I "https://chat.googleapis.com/"

管理ポリシーで Webhook が不可なら承認アプリ等の単一入口へ。送信プロセスはゲートウェイ一つに。

メッセージペイロードテンプレート

まず application/json; charset=UTF-8text のみで配信を固め、カードは後追いで構いません。

export CHAT_URL="$(sudo cat /etc/openclaw/secrets.d/google-chat/build-status.url)"
curl -sS -X POST "$CHAT_URL" \
  -H 'Content-Type: application/json; charset=UTF-8' \
  -d '{"text":"MeshMac ゲートウェイ プローブ OK: '"$(hostname -s)"'"}'

チェックポイント C:数秒で一行表示なら OK。エラー JSON は手で直してから CI 接続。本番は state・短 SHA・run_urlmesh_node_id を一行に。

Teams はカード+Office 系ホスト、Matrix はルーム/appservice に差し替え、キューとキーは共通。

多ノード状態の集約例

複数ビルダーは共有キューへ載せ、ゲートウェイだけが text を組み立て POST します。

正規化キーChat 一行での使い方
workflowios-release先頭のジョブ名
statesucceeded / failed絵文字またはラベル
mesh_node_idmm-pool-2どの Mac かをフッタ表示
provider_run_id18451203state と組み合わせて冪等キー

レンダ例:

✅ ios-release · main · abc1234 · <https://github.com/org/repo/actions/runs/18451203> · node mm-pool-2

provider_run_idstate で 24〜72h 窓の重複抑止。通知リトライはビルド再実行とパラメータ分離。

認証と再試行 FAQ

URL は OAuth トークンですか。
いいえ。エンドポイント秘密として扱い、ログはマスク、ローテは Webhook 再作成。
どの HTTP コードで再試行しますか。
429/一時 5xx のみ指数バックオフ+ジッター(例・2 分・最大 5 回)。400・認証エラーは修正まで再試行しない。404 連発は Webhook 再発行。
二重投稿を防ぐには。
成功を provider_run_id + state キーでキャッシュし窓内再送をスキップ。

まとめ・次の一手(ログイン不要)

ゲートウェイ一台・秘密集約・出站確認・最小 JSON・冪等再試行が実用最小セット。続きは OpenClaw 特集ブログ一覧

プラン · ノード選択 · 閲覧はログイン不要

通知経路を一本化すると、台数が増えてもローテと FW が保てます

Webhook を Mac 台数ぶん置くと秘密管理が破綻しがちです。多ノードでレーンを足す前に、プラン・ノード構成(購入ページ) で容量感を確認し、ヘルプセンター の SSH/VNC/ゲートウェイ手順とあわせて読んでください。ホームブログログイン不要で閲覧できます。

プランへ