Вот некоторые общие вещи, которые могут пойти не так, если вы не можете заставить своего чат-бота отправлять сообщения в Cloud Pub / Sub:
- Убедитесь, что у учетной записи
serviceAccount:chat-api-push@system.gserviceaccount.com
есть издательразрешение на тему.Это можно сделать, перейдя на панель управления Cloud Pub / Sub в облачной консоли , установив флажок рядом с темой, в которую вы хотите опубликовать, и набрав serviceAccount:chat-api-push@system.gserviceaccount.com
в поле под заголовком «Добавить».members »справа, выбрав« Разрешение Pub / Sub Publisher »и нажав кнопку« Добавить ».Если вы не видите эту панель сбоку, вам может потребоваться нажать «Показать информационную панель» в верхнем правом углу.Вот скриншот страницы с выделенными значками:
При подтверждении названия темы на странице конфигурации бота убедитесь, что вы указали полный путь, включая имя проекта.Название темы должно иметь форму projects/<project name>/topics/<topicname>
.
Убедитесь, что подписка существует, прежде чем пытаться общаться с вашим ботом.Сообщения, опубликованные до создания подписки, не будут доставлены в эту подписку.
Если вы дошли до этого уровня, но все еще не работает, попробуйте отправить сообщения своему боту, а затем потянитеих через инструмент командной строки gcloud с командой
gcloud pubsub subscriptions pull <subscription name> --project <project name>
Вы должны увидеть вывод таблицы с полученными сообщениями.Если вы можете получить этот вывод, то сообщения будут правильно передаваться из бота в тему Cloud Pub / Sub, а затем в подписку на эту тему.