首页 > 解决方案 > R电报机器人命令

问题描述

我使用 Rtelegram.bot包创建了一个简单的电报机器人,并使用下面的/start命令代码。问题是,当我/start在聊天中输入这个机器人时,它工作得很好。但是,当我使用 botfather 为机器人创建命令时,在这种情况下 for /start,它将调用 command /start@bot_name。这理论上应该可以正常工作,因为您正在调用特定的机器人,但不知何故,这对于我的机器人来说根本不运行。

从本质上讲,跑步/start有效,/start@bot_name也无效。不知道为什么会这样,因为我从其他机器人看到的情况都应该可以正常工作。不太确定我应该通过botfather打开哪些其他设置。

library(telegram.bot)

bot_token <- XXX
bot <- Bot(token = bot_token)
chat_id <- YYY

updater <- Updater(token = bot_token)

#start function
start <- function(bot, update){
  bot$sendMessage(chat_id = update$message$chat_id,
                  text = sprintf("Hello %s!", update$message$from$first_name))
}

start_handler <- CommandHandler("start", start)
updater <- updater + start_handler


# start bot
updater$start_polling()

标签: rtelegram-botr-telegram-bot

解决方案


我找到了解决方案。它实际上有一个参数:

start_handler <- CommandHandler("start", start, username = "chatbotusername")

如果您包含该username参数,它将侦听包含用户名的命令,例如/start@chatbotusername.


推荐阅读