На этой странице объясняется, как создать приложение Chat с использованием Pub/Sub . Этот тип архитектуры для приложения Chat полезен, если в вашей организации используется брандмауэр, который может помешать Chat отправлять сообщения в ваше приложение Chat, или если приложение Chat использует API Google Workspace Events . Однако эта архитектура имеет следующие ограничения, поскольку эти приложения Chat могут отправлять и получать только асинхронные сообщения :
- Диалоги в сообщениях использовать нельзя. Вместо этого используйте сообщение-карточку .
- Невозможно обновить отдельные карточки синхронным ответом. Вместо этого обновите всё сообщение, вызвав метод
patch
.
На следующей диаграмме показана архитектура приложения чата, созданного с помощью Pub/Sub:
На предыдущей диаграмме пользователь, взаимодействующий с приложением Pub/Sub Chat, имеет следующий поток информации:
Пользователь отправляет сообщение в чате в приложение чата, либо в прямом сообщении, либо в пространстве чата, или в пространстве чата происходит событие, на которое у приложения чата есть активная подписка .
Чат отправляет сообщение в тему Pub/Sub.
Сервер приложений, представляющий собой либо облачную, либо локальную систему, содержащую логику приложения чата, подписывается на тему Pub/Sub, чтобы получать сообщения через брандмауэр.
При желании приложение чата может вызывать API чата для асинхронной публикации сообщений или выполнения других операций.
Предпосылки
При сборке приложения Chat необходимо снять флажок «Создать это приложение Chat как дополнение к Google Workspace» на странице конфигурации API Chat в консоли Google Cloud. См. раздел «Опубликовать приложение в Google Chat» .
Ява
- Учетная запись Google Workspace Business или Enterprise с доступом к Google Chat .
- Проект Google Cloud с включённым биллингом. Чтобы проверить, включён ли биллинг для существующего проекта, см. раздел Проверка статуса биллинга ваших проектов . Чтобы создать проект и настроить биллинг, см. раздел Создание проекта Google Cloud .
- Java 11 или выше
- Инструмент управления пакетами Maven
Питон
- Учетная запись Google Workspace Business или Enterprise с доступом к Google Chat .
- Проект Google Cloud с включённым биллингом. Чтобы проверить, включён ли биллинг для существующего проекта, см. раздел Проверка статуса биллинга ваших проектов . Чтобы создать проект и настроить биллинг, см. раздел Создание проекта Google Cloud .
- Python 3.6 или выше
- Инструмент управления пакетами pip
Node.js
- Учетная запись Google Workspace Business или Enterprise с доступом к Google Chat .
- Проект Google Cloud с включённым биллингом. Чтобы проверить, включён ли биллинг для существующего проекта, см. раздел Проверка статуса биллинга ваших проектов . Чтобы создать проект и настроить биллинг, см. раздел Создание проекта Google Cloud .
- Node.js 14 или выше
- Инструмент управления пакетами npm
- Инициализированный проект Node.js. Чтобы инициализировать новый проект, создайте и перейдите в новую папку, а затем выполните следующую команду в интерфейсе командной строки:
npm init
Настройте среду
Перед использованием API Google необходимо включить их в проекте Google Cloud. Вы можете включить один или несколько API в одном проекте Google Cloud.В консоли Google Cloud включите API Google Chat и API Pub/Sub.
Настроить Pub/Sub
Создайте тему Pub/Sub , в которую API чата сможет отправлять сообщения. Мы рекомендуем использовать одну тему для каждого приложения чата.
Предоставьте чату разрешение на публикацию в теме, назначив роль издателя Pub/Sub следующей учетной записи службы:
chat-api-push@system.gserviceaccount.com
Создайте учетную запись службы для приложения Chat, чтобы авторизоваться в Pub/Sub и Chat, и сохраните файл закрытого ключа в рабочем каталоге.
Создайте подписку на рассылку по теме.
Назначьте роль подписчика Pub/Sub для подписки на учетную запись службы, которую вы ранее создали.
Написать сценарий
Ява
В CLI укажите учетные данные учетной записи службы :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
В CLI укажите идентификатор проекта Google Cloud:
export PROJECT_ID=PROJECT_ID
В CLI укажите идентификатор подписки Pub/Sub, которую вы создали ранее:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
В рабочем каталоге создайте файл с именем
pom.xml
.В файл
pom.xml
вставьте следующий код:В рабочем каталоге создайте структуру каталогов
src/main/java
.В каталоге
src/main/java
создайте файл с именемMain.java
.В
Main.java
вставьте следующий код:
Питон
В CLI укажите учетные данные учетной записи службы :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
В CLI укажите идентификатор проекта Google Cloud:
export PROJECT_ID=PROJECT_ID
В CLI укажите идентификатор подписки Pub/Sub, которую вы создали ранее:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
В рабочем каталоге создайте файл с именем
requirements.txt
.В файл
requirements.txt
вставьте следующий код:В рабочем каталоге создайте файл с именем
app.py
В
app.py
вставьте следующий код:
Node.js
В CLI укажите учетные данные учетной записи службы :
export GOOGLE_APPLICATION_CREDENTIALS=SERVICE_ACCOUNT_FILE_PATH
В CLI укажите идентификатор проекта Google Cloud:
export PROJECT_ID=PROJECT_ID
В CLI укажите идентификатор подписки Pub/Sub, которую вы создали ранее:
export SUBSCRIPTION_ID=SUBSCRIPTION_ID
В рабочем каталоге создайте файл с именем
package.json
.В файл
package.json
вставьте следующий код:В рабочем каталоге создайте файл с именем
index.js
.В
index.js
вставьте следующий код:
Опубликовать приложение в чате
В консоли Google Cloud перейдите в > API и службы > Включенные API и службы > API Google Chat > Конфигурация .
Настройте приложение чата для Pub/Sub:
- Снимите флажок «Создать это приложение чата как дополнение к Google Workspace» . Откроется диалоговое окно с запросом на подтверждение. В диалоговом окне нажмите «Отключить» .
- В поле «Имя приложения» введите
Quickstart App
. - В поле URL аватара введите
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - В поле Описание введите
Quickstart app
. - В разделе «Функциональность» выберите Присоединяйтесь к пространствам и групповым беседам .
- В разделе «Настройки подключения » выберите Cloud Pub/Sub и вставьте имя темы Pub/Sub, которую вы ранее создали.
- В разделе «Видимость» выберите «Сделать это приложение Google Chat доступным для определенных людей и групп в вашем домене» и введите свой адрес электронной почты.
- В разделе Журналы выберите Записывать ошибки в Журнал .
Нажмите «Сохранить» .
Приложение готово принимать и отвечать на сообщения в чате.
Запустить скрипт
В CLI перейдите в рабочий каталог и запустите скрипт:
Ява
mvn compile exec:java -Dexec.mainClass=Main
Питон
python -m venv env
source env/bin/activate
pip install -r requirements.txt -U
python app.py
Node.js
npm install
npm start
При запуске кода приложение начинает прослушивать сообщения, опубликованные в теме Pub/Sub.
Протестируйте свое приложение чата
Чтобы протестировать приложение Chat, откройте чат-комнату в приложении и отправьте сообщение:
Откройте Google Chat, используя учетную запись Google Workspace, которую вы указали при добавлении себя в качестве доверенного тестировщика.
- Нажмите новый чат» .
- В поле Добавить 1 или более человек введите название вашего чат-приложения.
Выберите приложение чата из результатов. Откроется личное сообщение.
- В новом прямом сообщении с приложением введите
Hello
и нажмитеenter
.
Чтобы добавить доверенных тестировщиков и узнать больше о тестировании интерактивных функций, ознакомьтесь с разделом Тестирование интерактивных функций для приложений Google Chat .
Устранение неполадок
Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так» или «Не удалось обработать ваш запрос». Иногда в интерфейсе Chat не отображается сообщение об ошибке, но приложение или карточка Chat выдаёт неожиданный результат; например, сообщение может не появиться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, при включенном ведении журнала ошибок для приложений чата доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки. Сведения о просмотре, отладке и исправлении ошибок см. в статье «Устранение неполадок и исправление ошибок Google Chat» .
Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» . Выберите « Меню > «IAM и администрирование» > «Управление ресурсами» .
- В списке проектов выберите проект .
- В диалоговом окне введите идентификатор проекта, а затем нажмите кнопку «Завершить» , чтобы удалить проект.
Похожие темы
Чтобы добавить дополнительные функции в приложение Chat, см. следующее: