我试图为一个电报机器人编写程序来控制我的Raspberry Pi,这样我发送给机器人的每一条消息都将被解释为一个shell命令1。
Raspberry Pi是一个版本2的B型,运行Arch。该程序用Python3.6.0与Telepot模块编写,并由Pi执行。
到目前为止,我一直在使用模块子进程来执行命令,如下所示:
# Execute a shell command (assuming that the message received is «text»)
P = subprocess.Popen(text, stdin=subprocess.PIPE, stdout=subprocess
我正在写一个电报机器人,为了简化这个问题,假设你可以在一个频道问机器人问题,它会私下回答你。当机器人接收到命令时,它从:chat_id获取用户的update.message.from_user.id
但是当我这样做的时候,我会发现一个错误:
Unauthorized: Forbidden: bot can't initiate conversation with a user
这听起来很符合逻辑,因为我认为这样可以防止编写垃圾邮件机器人。问题是我如何克服它?如何让用户启用来自机器人的私有消息?
注意:机器人确实成功地向我发送了消息,但没有发送给其他用户。
作为一个小实验,我一直在研究一个不和谐的机器人(因为我刚开始编写代码)。原来我对这段代码有问题:
// delete from 2-100.
const deleteCount = parseInt(args[0], 10);
if(!deleteCount){
return message.reply("Un numero del 2-100"); //"a number from 2-100"
}
const fetched = await message.channel.fetchMessages({limit: del