0

我正在 nodejs 中构建一个可以在 webhook 上运行的电报聊天机器人。目前,机器人在聊天中的每条消息都会点击我的 webhook URL。是否可以仅在机器人的命令执行时推送有效负载?

因此,我只想在用户执行 /test 命令时从聊天中获取有效负载,并且聊天中的任何其他消息都不应该 git 到我的 URL。

#编辑

当前的隐私设置

“启用” - 您的机器人将仅接收以“/”符号开头或通过用户名提及机器人的消息。“禁用” - 您的机器人将接收人们发送给群组的所有消息。当前状态为:已启用

我想在小组中使用机器人并与机器人直接聊天 - 我这样我就可以测试东西。

我创建了一个测试组,添加了机器人,我在组中输入的任何内容都可以在 Webhook URL 的日志中看到。因此,无论是 /test 还是某些文本,它都在被推送

#编辑 2

这就是我在 webhook URL 中收到的内容(普通聊天文本和 bot 命令)

{
  "update_id": 1,
  "channel_post": {
    "message_id": 65,
    "sender_chat": {
      "id": -1,
      "title": "Tssos",
      "type": "channel"
    },
    "chat": {
      "id": -1,
      "title": "Tssos",
      "type": "channel"
    },
    "date": 1,
    "text": "test"
  }
}
{
  "update_id": 1,
  "channel_post": {
    "message_id": 67,
    "sender_chat": {
      "id": -1,
      "title": "Tssos",
      "type": "channel"
    },
    "chat": {
      "id": -1,
      "title": "Tssos",
      "type": "channel"
    },
    "date": 1,
    "text": "/test@TESTss_bot",
    "entities": [
      {
        "offset": 0,
        "length": 23,
        "type": "bot_command"
      }
    ]
  }
}
4

2 回答 2

1

您必须使用@BotFather设置您的机器人隐私:

  1. 向@BotFather发送/mybots命令
  2. 通过用户名选择您的机器人
  3. 选择机器人设置
  4. 选择群组隐私
  5. 启用或禁用机器人的隐私

如果启用隐私模式,您的机器人只接收以斜杠开头的消息/

于 2021-06-03T23:33:57.193 回答
1

好的,所以我找到了我的问题的答案。

我正在将一个机器人作为管理员添加到聊天中,这就是他发送所有消息的原因。管理员机器人将推送所有聊天消息。像普通用户一样添加机器人解决了这个问题,现在我只收到 /command 更新。

默认情况下,所有机器人都启用隐私模式,但以管理员身份添加到组的机器人除外(机器人管理员始终接收所有消息)。可以禁用它,以便机器人像普通用户一样接收所有消息(需要将机器人重新添加到组中才能使此更改生效)。我们仅建议在您的机器人绝对需要工作的情况下执行此操作 - 用户始终可以在组成员列表中看到机器人的当前隐私设置。在大多数情况下,对机器人的消息使用强制回复选项应该绰绰有余。

文档

于 2021-06-05T09:17:57.380 回答