【问题标题】:Hubot misidentifying single userHubot错误识别单个用户
【发布时间】:2018-10-29 15:16:48
【问题描述】:

我在 Rocket.Chat 服务器上连接了一个 Hubot。我们有一个 Cards Against Humanity 的游戏脚本。有一天,我和另一位玩家几乎同时加入,从那时起,Hubot 就认为我是另一位玩家。

使用下面的脚本对此进行测试,hubot 使用其他用户的姓名和 ID 进行响应,而不是我自己的(也响应他而不是我):

return robot.respond(/who am i(\?)?/ig, function(msg) {
  return msg.reply("*Id: *" + msg.message.user.id + "\n*Name: *" + msg.message.user.name);
});

我已尝试停止 hubot 进程并重新部署,但这并不能解决问题。它似乎在所有 Hubot 脚本中都存在,因为此后制作的其他脚本将我视为其他玩家。

有什么方法可以撤销 Hubot 制作的任何玩家映射,或者有什么方法可以“重置”它以消除这个问题?我找不到任何关于用户存储不同步或其他人发生此问题的文档。

编辑:我还应该提到日志和控制台输出中的用户 ID 和名称(手动测试时)显示正确的名称和 ID(我自己的)。它只是不正确的,因为它被“解释”并发布到频道。我没有修改消息对象的代码。

【问题讨论】:

    标签: hubot rocket.chat


    【解决方案1】:

    解决了这个问题。我们使用的是 MySQL Hubot Brain 适配器。由于某种原因,它覆盖了大脑数据中的用户名。通过更新大脑修复。

    不知道它是怎么做到的,因为我看不到任何更新用户名的代码。我猜它不是线程安全的,而且两个调用靠得太近会导致问题。

    【讨论】:

      猜你喜欢
      • 2017-01-24
      • 1970-01-01
      • 2017-11-08
      • 2018-07-02
      • 1970-01-01
      • 2015-11-24
      • 1970-01-01
      • 1970-01-01
      • 2011-10-25
      相关资源
      最近更新 更多