当前位置: 首页 > 知识库问答 >
问题:

电报机器人webhook仅发送命令

华展鹏
2023-03-14

我正在nodejs中构建一个可以在webhook上运行的电报聊天机器人。目前,bot在聊天中的每条消息都会点击我的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"
      }
    ]
  }
}

共有2个答案

宋望
2023-03-14

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

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

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

文档

隆飞驰
2023-03-14

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

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

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

 类似资料:
  • 我有两个问题与编程电报机器人的PHP。 问题:当我尝试使用电报API发送更多行的文本时。根据此代码: 我在电报机器人中的文字如下: “这是我的短信。这是新线。” 你能帮我做这个吗? 谢谢你

  • 我不知道如何使用电报机器人诱导(触发)本地服务器向通道发送消息。 例如,从用户注册并连接电报的网站向用户发送通知。我们假设用户已经开始与bot对话,并准备好接收来自bot的消息。 我有一个单独的服务器,可以使用bot向服务器发送请求,但我不明白如何在这个电报机器人服务器上接收和处理请求。 我正在使用go电报-机器人-api库,此时服务器使用长轮询方法而不是webhooks。所以它通过更新通道接收一

  • 创建电报机器人并获得机器人令牌后,我想向机器人应用编程接口发送请求。 这个链接说我们必须像这样发送HTTP请求:

  • 我用php编写了一个电报机器人。我想向所有成员发送一条短信,我保存了所有成员的chat\u id。我尝试使用此功能发送消息: 并使用此功能获取用户聊天ID并发送消息: 但这并不能正常工作,消息会多次发送给成员,并且在我清除数据库之前不会停止。

  • 我无法理解电报机器人api的Reply_to_message方法。以下是我的代码: 这里,当用户发送/启动机器人发送hello world文本。我想让用户回复发送hello world的消息。我的意思是当用户发送/启动机器人回复信息的文本“你好,世界!” 我使用网络钩子。

  • 我想让用户按下电报机器人键盘上的按钮,但不发送消息。该消息将出现在消息框中,供用户进行进一步编辑,但不会发送出去。目的是生成模板消息,供用户进行进一步编辑。 这里有一个简单的键盘代码示例。 https://github.com/python-telegram-bot/python-telegram-bot/blob/master/examples/inlinekeyboard.py 我愿意使用任何