【问题标题】:Telegram Bot privacy mode enabled but the BOT still reads all the messages in the groupTelegram Bot 隐私模式已启用,但 BOT 仍会读取群组中的所有消息
【发布时间】:2020-08-27 21:56:12
【问题描述】:

是否有任何解决方法可以让机器人同时保持管理员身份?

我的 Bot 启用了隐私模式。我希望它读取以/ 开头的消息。

这是来自电报文档。它仍然会回复既不以/开头也不包含机器人用户名的消息。

我的密码:

import * as functions from 'firebase-functions';
import * as express from 'express'
import * as cors from 'cors'

const bot = express()

bot.use(cors({ origin: true}))

bot.post('/', async (req, res) => {

    const telegramText = req.body
    && req.body.message
    && req.body.message.chat
    && req.body.message.chat.id
    && req.body.message.from
    && req.body.message.from.first_name

    if (telegramText) {
        const chat_id = req.body.message.chat.id
        const first_name = req.body.message.from.first_name
        const receivedMessage = req.body.message.text
      if (typeof userInput !== 'undefined') {

        return res.status(200).send({
            method: 'sendMessage',
            chat_id,
            text: `Here\'s your reply`
        })
    }
    }
    return res.status(200).send({status: 'An error occurred'})

})

export const router = functions.https.onRequest(bot)

看到它正在回复所有消息。

虽然我不想在这里验证消息是否以/ 开头。它只会消耗我的 Firebase 云函数调用。为什么机器人会读取所有消息?

我只是不希望我的云函数在每条消息上都被触发,所以我想阻止机器人读取所有消息。

编辑:我试过了:

(1) 稍等

(2) 删除并创建另一个机器人。

(3) 以管理员身份删除 Bot 确实有帮助,但我的 bot 将无法完成大部分任务。

【问题讨论】:

  • 您参考的文档中的信息似乎与组有关。据我了解,如果是私聊,或者频道(第 4 项表单文档)bot 将收到所有消息。
  • @Nymphetamine 我在 GROUP 中使用它。看到那个机器人是一个管理员
  • 好的,我只是想帮你。启用隐私模式后是否过了一段时间?也许你测试的时候没有应用。
  • @Nymphetamine 有什么解决办法吗??
  • @Nymphetamine 我等了一个多小时。我也尝试过创建新的机器人。

标签: node.js typescript firebase telegram-bot


【解决方案1】:

问题很旧,但我正在回答以帮助以后阅读的任何人:

答案:

根据official doc

默认情况下,所有机器人都启用隐私模式,除了那些 以管理员身份添加到群组(机器人管理员始终接收所有消息)。

可能的替代方式:

所以,似乎还没有解决方案;但是如果您编写组管理器机器人或某种 机器人,这些机器人需要具有管理员权限但不需要直接阅读消息(另一个机器人可以读取消息并通过其脚本的 URL 调用该机器人来执行特定消息上的某些内容)还可以从服务器加载,您可以考虑setWebhook方法的allowed_updates字段:

您希望机器人执行的更新类型的 JSON 序列化列表 收到。例如,指定[“message”, “edited_channel_post”, “callback_query”] 仅接收这些类型的更新。见更新 有关可用更新类型的完整列表。指定一个空列表 接收除 chat_member 以外的所有更新类型(默认)。如果不 指定,将使用以前的设置。请注意,这 参数不影响调用之前创建的更新 setWebhook,因此可能会在短时间内收到不需要的更新 时间。

【讨论】:

  • "(另一个机器人可以读取消息并调用这个机器人"->这听起来像是有 2 个不同的机器人。
  • @Dharmaraj 是的,只有 2 个不同的脚本!没有额外费用。 (仅当您想要某种负载平衡时才有用)...
  • 问题是这个机器人是供公众使用的,所以如果我们要求每个人都添加 2 个机器人,那就不太理想了。
猜你喜欢
  • 1970-01-01
  • 2021-08-08
  • 2017-02-25
  • 2017-07-04
  • 2021-09-24
  • 2019-03-09
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
相关资源
最近更新 更多