如何使用 pub/sub 机器人对消息作出反应

2024-04-17

我创建了一个带有按钮和 onClick 操作的卡片,该卡片成功向我的客户发送了类型为“CARD_CLICKED”的消息。 当我尝试使用“NEW_MESSAGE”或“UPDATE_MESSAGE”类型的消息响应此消息时,该消息将显示为新消息,而 API 会尝试 3 次将该 CARD_CLICKED 事件发送到我的机器人,直到它放弃视觉错误:“无法联系 [机器人]。稍后重试。”

我想这类似于

  • 使用发布/订阅时交互按钮无法正常工作 https://stackoverflow.com/questions/49785504/interactive-button-doesnt-work-properly-when-using-pub-sub
  • 互动卡环聊 Api https://stackoverflow.com/questions/51631989/interactive-cards-hangout-chat-api

但我正在使用 golang 客户端,这些问题的答案对我没有帮助......

我响应“CARD_CLICKED”消息的代码:

func handleClick(message *chat.DeprecatedEvent) *chat.Message {
    log.Debugf("User %s instructed me to execute %s", message.User.DisplayName, message.Action.ActionMethodName)

    response := &chat.Message{
        ActionResponse: &chat.ActionResponse{Type: "UPDATE_MESSAGE"},
        Thread:         &chat.Thread{Name: message.Message.Thread.Name},
        Space:          &chat.Space{Name: message.Message.Space.Name, Type: message.Message.Space.Type},
        Text:           "CARD CLICKED!",
    }
    return response
}

我的代码基于这个项目:https://github.com/jforman/hangbot https://github.com/jforman/hangbot


找出主要问题是什么...我正在调用 .Create() 函数 - 它创建了一条新消息,因此 - 即使操作响应设置正确 - 这也没有被解释为对单击事件的响应:https://github.com/jforman/hangbot/blob/master/hangbot.go#L79 https://github.com/jforman/hangbot/blob/master/hangbot.go#L79

当我切换到调用 .Update() 后,聊天将不再显示有关我的机器人的“无法联系”消息。

剩下的就是点击事件了still发送给我三次,但我现在根据 eventTime 过滤事件,目前工作正常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 pub/sub 机器人对消息作出反应 的相关文章

随机推荐

  • 红宝石来整理单词[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在尝试编写一个 ruby 脚本来解读排列的单词 生成所有排列 并在 txt 目录中搜索该单词 我遇到了问题 这是我所拥有的简单概述 pr
  • 如何在 GEOS 中制作矩形? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如何使用 GEOS 库的 C API 制作矩形 以下实现完成了工作GEOS http trac osg
  • 来自 WEBVTT 的 RDF/JSON Javascript 解析器

    晚上好 开门见山 我需要一个脚本来从 WEBVTT 文件中的特定时间间隔获取 RDF JSON 结构 这样的事情存在吗 RDF JSON 是 Talis 指定的文件结构 如下所示 S P O WEBVTT 实现上述结构如下 0 00 00
  • 将有状态 LSTM 称为功能模型?

    我有一个状态 LSTM 定义为顺序模型 model Sequential model add LSTM stateful True 后来 我将其用作功能模型 input 1 input 2 Input Input output 1 mode
  • 使用 ruby​​-install/ruby-build 在 Archlinux 上安装 Ruby 2.1.x 和 2.3.x 时出现 OpenSSL 错误

    我在 Archlinux 上使用 ruby install 构建旧版本的 Ruby 时遇到了一些问题 我怀疑 ruby build 也会发生同样的情况 尝试安装 Ruby 2 1 5 2 1 6 2 3 0 2 3 1 2 3 4 后 我看
  • ArgumentError:写入密钥必须初始化 Rails

    您好 我是 Rails 新手 我使用 nitrous io 作为我的 IDE 我刚刚使用 Rails 生成了一个模型generate model Micropost content text user references 当我跑步时bun
  • 如何删除 DataGrid 中焦点上的轮廓

    我试图删除当您关注 Material UI 的 DataGrid 组件中的单元格时出现的轮廓 这些方法都不起作用 const useStyles makeStyles theme gt Method 1 global MuiDataGrid
  • Java 中的字符串到 Clob?

    我在java中有一个字符串 但数据库中的数据类型是Clob 如何从 String 中获取 Clob clob setString position string 将 String 写入 Clob 对象 http download oracl
  • H2O 是否或将会提供任何与 h2o word2vec 一起使用的预训练向量?

    H2O 最近在其 API 中添加了 word2vec 能够在您自己提供的语料库上轻松训练自己的词向量真是太好了 然而 使用大数据和大型计算机存在更大的可能性 由于网络带宽和计算能力的限制 谷歌或 H2O ai 等软件供应商可能无法访问这种类
  • 如何使用数组在 FilterExpression 中使用“IN”语句 - dynamodb

    检查了AWS文档 但没有找到任何有效的示例 这是我的尝试 var params TableName User IndexName a b index KeyConditionExpression Country country and s
  • Chrome DevTool Timeline View中的渲染和绘画事件有什么区别

    我觉得render and paint只是两者都意味着渲染页面 显示 DOM 有什么区别 渲染事件是关于计算与每个 DOM 节点关联的样式 即 样式重新计算 和页面上的元素位置 布局 绘制类别是关于实际绘制像素的 包括 绘制 本身和 解码图
  • GET_SIGNATURES 已弃用

    我试图在我的 Android 应用程序中将内容分享到 Facebook 我需要一个密钥哈希 但我无法查看HashKey on my logcat因为GET SIGNATURES已弃用 有什么方法可以查看我的哈希键吗 这是代码 public
  • 并发可变优先级队列

    是否存在并发可变优先级队列 理想情况下 我正在寻找 C 实现 但是对于初学者来说 指向算法的指针会非常有帮助 需要明确的是 我正在寻找一个优先级队列 可以在其中调整元素的优先级 特别是TBBconcurrent priority queue
  • dplyr:将计数出现次数放入新变量中[重复]

    这个问题在这里已经有答案了 想要了解 dplyr 代码 但无法弄清楚这一点 已经看到这里描述的许多变量的类似问题 用 dplyr 总结一个因子的计数 https stackoverflow com questions 25811756 su
  • 在 Windows 系统上移动文件的最快方法 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要将大约 800GB 的数据从 NTFS 存储设备移动到 FAT32 设备 两者都是外部硬盘驱动器 在 Windows 系统上 实现这
  • 自定义元素 Web 组件 Shadow DOM 供应商脚本/元素

    当与自定义元素 https html spec whatwg org multipage custom elements html custom elements那个杠杆影子 DOM https dom spec whatwg org sh
  • 输入不是数字时输出错误。 C++

    我正在创建一个函数 它从用户的输入中获取一个数字并找到它的绝对值 如果用户输入数字以外的任何内容 我想让它返回错误 我该怎么做呢 我知道这对很多人来说可能是一个简单的问题 但我正在上第一堂 C 编程课 所以我知之甚少 任何帮助将不胜感激 如
  • 处理 TextBox 中的 ENTER 按钮,ASP.NET

    我在 ASP NET 中遇到以下问题 有一个表单 其中包含一个文本框和旁边的一个按钮 用户在填写该框后应该按下该按钮 示例http www burnthespam info http www burnthespam info 单击 选择您的
  • Objective-C 属性是公开只读的,但有一个私有 setter

    我想使用 property语法来声明一个公开只读的合成属性 但有一个可以从类内私有调用的 setter 由于它是 Objective C 这基本上意味着setFoo 方法将被合成 但在类本身之外调用它会导致警告 无法识别的选择器 要触发警告
  • 如何使用 pub/sub 机器人对消息作出反应

    我创建了一个带有按钮和 onClick 操作的卡片 该卡片成功向我的客户发送了类型为 CARD CLICKED 的消息 当我尝试使用 NEW MESSAGE 或 UPDATE MESSAGE 类型的消息响应此消息时 该消息将显示为新消息 而