我有一个用javascript编写的Telegram Bot(node-telegram-bot-api + SailsJs)。我想创建一个回答私人信息的机器人,例如my / todayTasks或/ myAgenda。我可以阻止人们在私人聊天中使用我的机器人吗?
我在机器人收到/start
时尝试使用leaveChat(),但它只适用于群聊。
未处理拒绝错误:ETELEGRAM:400错误请求:聊天成员状态无法在私人聊天中更改
我的代码:
bot.onText(/\/start/, function(msg) {
const chatId = msg.chat.id;
CheckAuthorized(chatId).then(function(user) {
if (!user) {
bot.sendMessage(chatId, 'Sorry, you are not allowed to ask me.');
bot.leaveChat(chatId); //<---- ERROR HERE!
return;
}
bot.sendMessage(chatId, 'Hello my friend.');
});
});
当然,如果没有其他选项,我可以使用身份验证策略在每个请求之前运行。
答案 0 :(得分:0)
不幸的是,机器人此时只能离开群组聊天,因此您唯一能做的就是在代码中忽略它们:(
答案 1 :(得分:0)
目前,僵尸程序无法阻止或忽略特定用户或除白名单之外的所有人。
我要做的是将我要让我的机器人在其中工作的每个用户或组的chat-id
放入一个数组中。
在收到的每条消息中,漫游器然后检查chat-id
是否在该数组中,如果不是,则直接退出该函数。
以下是python-telegram-bot
的示例:
whitelist = [-10012344586,-2457841,-100554879472]
def on_message(bot, update):
if not update.message.chat_id in whitelist:
return