На этой странице объясняется, как создать приложение чата с помощью Pub/Sub . Этот тип архитектуры для приложения Chat полезен, если в вашей организации есть брандмауэр, который может запретить Chat отправлять сообщения в ваше приложение Chat, или если приложение Chat использует API Google Workspace Events . Однако эта архитектура имеет следующие ограничения, поскольку эти приложения чата могут отправлять и получать только асинхронные сообщения :
- Не могу использовать диалоги в сообщениях. Вместо этого используйте карточное сообщение .
- Невозможно обновить отдельные карточки с синхронным ответом. Вместо этого обновите все сообщение, вызвав метод
patch
.
На следующей схеме показана архитектура приложения Chat, созданного с помощью Pub/Sub:
На предыдущей диаграмме пользователь, взаимодействующий с приложением Pub/Sub Chat, имеет следующий поток информации:
Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в пространстве Chat, либо событие происходит в пространстве Chat, на которое у приложения Chat имеется активная подписка .
Чат отправляет сообщение в тему Pub/Sub.
Сервер приложений, представляющий собой облачную или локальную систему, содержащую логику приложения Chat, подписывается на тему Pub/Sub, чтобы получать сообщения через брандмауэр.
При желании приложение Chat может вызывать API Chat для асинхронной публикации сообщений или выполнения других операций.
Предварительные условия
Ява
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Проект Google Cloud с включенной оплатой. Чтобы проверить, включена ли оплата для существующего проекта, см. раздел Проверка статуса выставления счетов ваших проектов . Инструкции по созданию проекта и настройке оплаты см. в разделе Создание проекта Google Cloud .
- Java 11 или более поздняя версия
- Инструмент управления пакетами Maven
Питон
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к Google Chat .
- Проект Google Cloud с включенной оплатой. Чтобы проверить, включена ли оплата для существующего проекта, см. раздел Проверка статуса выставления счетов ваших проектов . Инструкции по созданию проекта и настройке оплаты см. в разделе Создание проекта Google Cloud .
- Python 3.6 или выше
- Инструмент управления пакетами pip
Node.js
- Аккаунт Google Workspace для бизнеса или предприятия с доступом к 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 , в которую API чата сможет отправлять сообщения. Мы рекомендуем использовать одну тему для каждого приложения чата.
Предоставьте Chat разрешение на публикацию темы, назначив роль издателя 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 и службы > Google Chat API > Конфигурация .
Настройте приложение Chat для Pub/Sub:
- В поле «Имя приложения» введите
Quickstart App
. - В URL-адресе аватара введите
https://developers.google.com/chat/images/quickstart-app-avatar.png
. - В поле «Описание» введите
Quickstart app
. - В разделе «Функциональность» выберите «Получать сообщения 1:1» и «Присоединяться к группам и групповым беседам» .
- В разделе «Настройки подключения» выберите 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, откройте пространство для прямых сообщений в приложении Chat и отправьте сообщение:
Откройте Google Chat, используя учетную запись Google Workspace, которую вы указали при добавлении себя в качестве доверенного тестировщика.
- Нажмите новый чат» .
- В поле «Добавить 1 или несколько человек» введите название вашего приложения чата.
Выберите приложение чата из результатов. Откроется прямое сообщение.
- В новом прямом сообщении с приложением введите
Hello
и нажмитеenter
.
Чтобы добавить доверенных тестировщиков и узнать больше о тестировании интерактивных функций, см. раздел Тестирование интерактивных функций для приложений Google Chat .
Устранение неполадок
Когда приложение или карточка Google Chat возвращает ошибку, в интерфейсе Chat отображается сообщение «Что-то пошло не так». или «Невозможно обработать ваш запрос». Иногда в пользовательском интерфейсе чата не отображается сообщение об ошибке, но приложение или карточка чата выдает неожиданный результат; например, сообщение с карточкой может не появиться.
Хотя сообщение об ошибке может не отображаться в пользовательском интерфейсе чата, доступны описательные сообщения об ошибках и данные журнала, которые помогут вам исправить ошибки, если включено ведение журнала ошибок для приложений чата. Информацию о просмотре, отладке и исправлении ошибок см. в разделе «Устранение неполадок и исправление ошибок Google Chat» .
Очистить
Чтобы избежать списания средств с вашей учетной записи Google Cloud за ресурсы, используемые в этом руководстве, мы рекомендуем вам удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» . IAM и администрирование > Управление ресурсами . >
- В списке проектов выберите проект, который хотите удалить, и нажмите « .
- В диалоговом окне введите идентификатор проекта и нажмите «Завершить работу» , чтобы удалить проект.
Связанные темы
Чтобы добавить дополнительные функции в приложение Chat, см. следующее: