【发布时间】:2019-08-08 22:16:38
【问题描述】:
我正在使用以下库将机器人连接到 Google Pub/Sub 端点,以执行对卡片点击事件的简单回复。
Google.Apis.HangoutsChat.v1 1.34.0.1233
Google.Cloud.PubSub.V1 1.0.0-beta18
当我构建我的卡片时,UI 中的一切看起来都很正常,包括应该引发事件的按钮。
主题和订阅包含默认设置,遵循指南here
我从谷歌文档中找到了以下关于重试的信息here
同步响应
机器人可以通过返回一个同步响应事件 HTTP 响应中的 JSON 格式的消息负载。截止日期为 同步响应为 30 秒。
来自机器人的同步响应总是发布在线程中 为机器人生成事件。
点击按钮后,我的订阅者收到 3 个重复事件。这些事件具有正确的响应以及所有正确的元数据,但彼此完全相同,包括消息本身的 id。
我认为机器人的响应不一定有很大的延迟(对于此测试,它应该在
我还尝试在响应时设置卡片的线程 ID(通过Thread 属性本身或ThreadKey 属性),但是当我发布消息时,我似乎总是得到一个新的线程 ID。
var cardMessage = MessageSender.Spaces.Messages.Create(new Message()
{
Space = new Space()
{
Name = inReplyToThisMessage.Space.Name
},
Thread = new Thread()
{
Name = inReplyToThisMessage.Thread.Name
},
Cards = new List<Card>()
{
card
},
}, inReplyToThisMessage.Space.Name);
var sendCardResult = await cardMessage.ExecuteAsync().ConfigureAwait(false);
//Thread id of sendCardResult does not match inReplyToThisMessage.Thread.Name no matter what
有趣的是,尝试创建一条新消息以响应点击事件会导致机器人显示“无法连接到机器人。稍后再试”,但会显示 3 条新消息。此外,当指定任意线程键时,该键永远不会在机器人的响应中回显。
【问题讨论】:
标签: c# hangouts-chat