与机器人进行环聊聊天不会将消息发布到 pub/sub

1 java bots google-hangouts google-cloud-pubsub hangouts-api

我按照https://developers.google.com/hangouts/chat/how-tos/bots-publish中的步骤操作

如果我通过谷歌控制台发布到一个主题,它会在订阅者的java代码中收到https://console.cloud.google.com/cloudpubsub/topics/

但与机器人聊天不会将消息发布到 Pub/Sub

帮助我周围

Kam*_*osn 5

如果您无法让聊天机器人向 Cloud Pub/Sub 发送消息,则可能会出现以下一些常见错误:

  1. 确保该serviceAccount:chat-api-push@system.gserviceaccount.com帐户具有该主题的发布者权限。您可以通过以下方式执行此操作:转到云控制台中的 Cloud Pub/Sub 仪表板,单击要发布到的主题旁边的复选框,serviceAccount:chat-api-push@system.gserviceaccount.com在右侧“添加成员”下的框中输入内容,然后选择“ Pub/Sub 发布者权限”,然后单击“添加”按钮。如果您在侧面没有看到此面板,您可能需要单击右上角的“显示信息面板”。这是页面的屏幕截图,其中突出显示了相关部分:

Cloud Pub/Sub 控制台页面

  1. 在机器人配置页面中证明主题名称时,请确保指定完整路径,包括项目名称。主题名称应采用以下形式projects/<project name>/topics/<topicname>

  2. 在尝试与机器人聊天之前,请确保订阅存在。在创建订阅之前发布的消息将不会传递到该订阅。

如果您已经完成了这些,但仍然无法正常工作,请尝试向您的机器人发送消息,然后使用以下命令通过 gcloud 命令行工具拉取它们

 gcloud pubsub subscriptions pull <subscription name> --project <project name>
Run Code Online (Sandbox Code Playgroud)

您应该看到一个表输出,其中包含收到的消息。如果您可以获得此输出,则消息会正确地从机器人流向 Cloud Pub/Sub 主题,然后流向该主题的订阅。

  • 看起来现在应该使用“chat-api-push@system.gserviceaccount.com”,即相同的帐户 ID,但没有“serviceAccount:”前缀。 (2认同)