コンテンツにスキップ

Google Chat

Google Chat Pages Pluginは、メッセージに応答できるGoogle Chatボットを作成します。また、ユーザー入力なしでGoogle Chatと対話するためのAPIも含まれています(たとえば、メッセージを作成するため)。このAPIは、アラートなどの状況で便利です。

インストール

Terminal window
npm install @cloudflare/pages-plugin-google-chat

使用法

import googleChatPlugin from "@cloudflare/pages-plugin-google-chat";
export const onRequest: PagesFunction = googleChatPlugin(async (message) => {
if (message.text.includes("ping")) {
return { text: "pong" };
}
return { text: "申し訳ありませんが、あなたのメッセージを理解できませんでした。" };
});

プラグインは、受信メッセージを受け取り、応答メッセージのPromise(応答が不要な場合はvoid)を返す関数を受け取ります。

プラグインは、Google Cloud Consoleでボットを作成する際に設定すべきURLである単一のルートのみを公開します。

Google Chat APIのためのGoogle Cloud Consoleの接続設定で「App URL」が選択され、「https://example.com/google-chat」が「App URL」テキスト入力に入力されています。

API

Google Chat APIは、GoogleChatAPIクラスを使用して直接呼び出すことができます。

import { GoogleChatAPI } from "@cloudflare/pages-plugin-google-chat/api";
export const onRequest: PagesFunction = () => {
// サービスアカウントの資格情報でGoogleChatAPIを初期化
const googleChat = new GoogleChatAPI({
credentials: {
client_email: "SERVICE_ACCOUNT_EMAIL_ADDRESS",
private_key: "SERVICE_ACCOUNT_PRIVATE_KEY",
},
});
// メッセージを投稿
// https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create
const message = await googleChat.createMessage(
{ parent: "spaces/AAAAAAAAAAA" },
undefined,
{
text: "私はアラートです!",
},
);
return new Response("アラートが送信されました。");
};

サービスアカウントの資格情報は、上記のようにプレーンテキストではなくKVに保存することをお勧めします。

GoogleChatAPIインスタンスで利用可能な関数は次のとおりです。各関数は、パスパラメータのオブジェクト、クエリパラメータのオブジェクト、およびリクエストボディのオブジェクトの最大3つの引数を取ります。詳細はGoogle Chat APIのドキュメントを参照してください。