如何让 Hubot 知道 he/she 正在私聊中收到消息?

How to make Hubot know he/she is receiving the message in a private chat?

我正在创建一个 Hubot 脚本来做一些事情。然而,由于某些情况,我们需要确保某些命令 仅在通过 PM(私人消息)而不是渠道 发送时有效(例如告诉机器人保存一些密码)。

作为解决方法,我目前正在使用此检查器功能:

is_private = (res) -> res.message.room == res.message.user.name

我们目前在 Slack 中使用它,但需要使脚本也能与 其他适配器 一起使用,因为我们打算将其作为开源项目发布。

这个方法靠谱吗?有没有内置的方法来检查这个?

Adapter 接口在私人消息上是无用的(第一个适配器 Campfire 完全不支持 PM)。我认为您的方法适用于大多数适配器,但跨适配器 PM 行为是一个持续存在的问题。也许,某个时候,我会着手处理 Adapter 接口,但目前我的大部分工作都集中在消息处理流程上。

我建议使用它并在发布后留意问题。

对于您的情况,考虑使用 hubot-auth 来控制您的用户的权限

https://www.npmjs.com/package/hubot-auth

How to setup Hubot basic permissions?