【问题标题】:How to hide Telegram BOT commands when it is part of a group?当它是组的一部分时,如何隐藏 Telegram BOT 命令?
【发布时间】:2015-12-10 20:59:55
【问题描述】:

我正在尝试使用 Telegram BOT 向群组发送消息。首先,我认为知道群聊 id 就足够了,但事实并非如此。 BOT 必须是该组的一部分。好吧,这有点道理,但问题是:当您将 BOT 添加到一个组(在这种情况下是一个大组)时,每个人都开始在他们的设备上看到一个新图标,一个“斜线”图标。他们做什么?他们点击它,查看命令列表,选择其中一个,突然之间,每个人都从组中收到一条新消息:“/something”。想象一下有几十个人在这样做吗?这很烦人。所以,这些都对我有用:

1) 我可以将消息从 BOT 发送到组,而组中没有该 BOT 吗? 2)我可以有一种“无方法”的机器人,只发送消息吗? 3) 我可以禁用客户端的“斜线”图标,这样我就不会在组中出现“机器人方法大战”了吗?

谢谢

【问题讨论】:

    标签: telegram telegram-bot


    【解决方案1】:
    1. 不,您不能让机器人在不属于该组的情况下向该组发送消息。
    2. 您可以简单地不使用 BotFather 设置命令,然后客户端将没有要显示的命令。
    3. 如果机器人在当前聊天中,它总是在那里,但这是在 BotFather 中没有设置命令时它所做的:

    【讨论】:

    • 是的。昨天发现“没有方法”的 BOT 可以解决问题。所以我创造了一个,它的工作! PS:使用最新的Android App版本,我什至看不到“斜线”。完美的 !非常感谢您的回答。
    【解决方案2】:

    我有一个更好的解决方案:可以直接通过代码自定义命令,也可以depending from the context(即私人聊天、群组等...)

    这个例子是使用Telegraf 完成的,但这与基本代码没有太大区别

    bot.start(function(ctx) {
        // If bot is used outside a group
        ctx.telegram.setMyCommands(
            [
                {
                    "command": "mycommand",
                    "description": "Do something in private messages"
                }, {
                    "command": "help",
                    "description": "Help me! :)"
                }
            ],
            {scope: {type: 'default'}}
        )
    
        // If bot is used inside a group
        ctx.telegram.setMyCommands(
            [
                // <-- empty commands list
            ],
            {scope: {type: 'all_group_chats'}}
        )
    
        ctx.reply('Hello! I\'m your super-cool bot!!!')
    })
    

    Bonus Point,您还可以通过检查源来管理命令行为。 因此,例如,如果组中的用户仍然尝试手动使用您的命令并且您不想执行任何操作:

    bot.help(function(ctx) {
        // Check if /help command is not triggered by a private chat (like a group or a supergroup) and do nothing in that case
        if (ctx.update.message.chat.type !== 'private') {
            return false
        }
    
        ctx.reply('Hi! This is a help message and glad you are not writing from a group!')
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 1970-01-01
      • 2016-12-06
      • 2023-04-03
      • 2021-08-22
      相关资源
      最近更新 更多