【问题标题】:Telegram bot receiving commands from other bot电报机器人从其他机器人接收命令
【发布时间】:2023-03-12 04:39:01
【问题描述】:

在我发现的电报机器人 API 的文档中:

  1. 启用隐私模式的机器人将收到:

明确为他们指定的命令(例如,/command@this_bot)。

如果机器人是最后一个机器人,则来自用户的常规命令(例如 /start) 向群组发送消息。

所以我创建了两个机器人 - 邀请两个机器人组成一个组并让“firstbot”触发 /cmd@otherbot 某些命令。 “otherbot”会回显它读取的所有内容。

我(在客户端)我可以写 - “otherbot”看不到它 - 由于隐私设置,这是正确的。 我写 /cmd@otherbot - “otherbot”接收并回显这个 - 也是正确的。

但是 - 当我让“firstbot”在“otherbot”组中发出 /cmd@otherbot 时看不到它。 我做错了什么 - 还是我被文档误导了?

我通过循环使用 C# 和 Telegram.Bot。

【问题讨论】:

    标签: telegram-bot


    【解决方案1】:

    Bots can't see messages meant for other bots,无论隐私模式如何。

    为什么我的机器人看不到来自其他机器人的消息?

    聊天机器人可能会陷入不受欢迎的循环中。为避免这种情况,我们决定无论模式如何,机器人都无法看到来自其他机器人的消息。

    【讨论】:

    • 谢谢。我以前看过这个,但是阅读“直接指示的命令”让我充满希望。太糟糕了——一个简单的“嘿,朋友看看这个”会很有帮助(至少在我的场景中)
    • 没有什么可以阻止您的机器人提供和带外通信通道用于机器人之间的直接通信,因此这将是一个非常好的用例。
    • 这就是我想通过使用安全电报基础设施来克服的问题。否则我可以运行我自己的 signalR 服务器或类似的东西。场景:botA 只能由(选定的)人类和 botaaB 访问。它能够做许多关键的事情。 BotB 是公共可访问的,它将请求转发给 botA,或者在特殊情况下转发给人类(在检查后)将请求转发给 botA。这两个机器人都隐藏在防火墙后面,只能使用 webhook 与电报通信。当然,我可以通过 azure 左右连接两个机器人......但我希望可以使用电报转发命令。
    猜你喜欢
    • 2017-08-18
    • 2018-06-13
    • 2018-03-01
    • 2016-06-29
    • 1970-01-01
    • 2022-11-09
    • 2020-08-20
    • 1970-01-01
    • 2018-07-22
    相关资源
    最近更新 更多