INTEGRITY Документация

Google Chat

Google Chat Pages Plugin создаёт бота Google Chat, который может отвечать на сообщения. Он также включает API для взаимодействия с Google Chat (например, для создания сообщений) без участия пользователя. Этот API полезен в таких случаях, как оповещения.

Установка

npm i @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: "Sorry, I could not understand your message." };
});

Плагин принимает функцию, которая, в свою очередь, принимает входящее сообщение и возвращает Promise сообщения ответа (или void если ответа быть не должно).

Плагин предоставляет только один маршрут: URL-адрес, который следует указать в Google Cloud Console при создании бота.

Настройки подключения (Connection Settings) в Google Cloud Console для Google Chat API. На скриншоте выбрано поле 'App URL', а в текстовое поле 'App URL' введено значение 'https://example.com/google-chat'.

API

К API Google Chat можно обращаться напрямую с помощью GoogleChatAPI класс:

import { GoogleChatAPI } from "@cloudflare/pages-plugin-google-chat/api";

export const onRequest: PagesFunction = () => {
	// Initialize a GoogleChatAPI with your service account's credentials
	const googleChat = new GoogleChatAPI({
		credentials: {
			client_email: "SERVICE_ACCOUNT_EMAIL_ADDRESS",
			private_key: "SERVICE_ACCOUNT_PRIVATE_KEY",
		},
	});

	// Post a message
	// https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create
	const message = await googleChat.createMessage(
		{ parent: "spaces/AAAAAAAAAAA" },
		undefined,
		{
			text: "I'm an alert!",
		},
	);

	return new Response("Alert sent.");
};

Рекомендуем хранить учётные данные сервисного аккаунта в KV, а не в виде обычного текста, как показано выше.

Следующие функции доступны для GoogleChatAPI экземпляр. Каждый принимает до трёх аргументов: объект параметров пути, объект параметров запроса и объект тела запроса, как описано в документация Google Chat API.