На этой странице объясняется, как создать приложение Chat с использованием Pub/Sub . Этот тип архитектуры для приложения Chat полезен, если в вашей организации используется брандмауэр, который может помешать Chat отправлять сообщения в ваше приложение Chat, или если приложение Chat использует API Google Workspace Events . Однако эта архитектура имеет следующие ограничения, поскольку эти приложения Chat могут отправлять и получать только асинхронные сообщения :
- Диалоги в сообщениях использовать нельзя. Вместо этого используйте сообщение-карточку .
- Невозможно обновить отдельные карточки синхронным ответом. Вместо этого обновите всё сообщение, вызвав метод
patch
.
На следующей диаграмме показана архитектура приложения чата, созданного с помощью Pub/Sub:
На предыдущей диаграмме пользователь, взаимодействующий с приложением Pub/Sub Chat, имеет следующий поток информации:
Пользователь отправляет сообщение в чате в приложение чата, либо в прямом сообщении, либо в пространстве чата, или в пространстве чата происходит событие, на которое у приложения чата есть активная подписка .
Чат отправляет сообщение в тему Pub/Sub.
Сервер приложений, представляющий собой либо облачную, либо локальную систему, содержащую логику приложения чата, подписывается на тему Pub/Sub, чтобы получать сообщения через брандмауэр.
При желании приложение чата может вызывать API чата для асинхронной публикации сообщений или выполнения других операций.
Предпосылки
Ява
- Учетная запись 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:
- В поле «Имя приложения» введите
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, см. следующее: