Telegram Bot Private bot [安全]

时间:2018-03-02 22:25:50

标签: node.js telegram-bot

我有一个用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.');                
    });
});

当然,如果没有其他选项,我可以使用身份验证策略在每个请求之前运行。

2 个答案:

答案 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