Telegram bot发起与用户的对话

Uri*_*lit 4 python telegram python-telegram-bot telegram-bot

我正在写一个Telegram机器人,为了简化问题,假设您可以在渠道中询问机器人问题并且它会私下回复您.当僵尸程序收到命令时,它将chat_id从用户处获取:update.message.from_user.id

但是当我这样做时,我收到一个错误:

Unauthorized: Forbidden: bot can't initiate conversation with a user
Run Code Online (Sandbox Code Playgroud)

这听起来很合乎逻辑,因为我认为这可以防止编写垃圾邮件机器人.问题是我该如何克服它?如何让用户从机器人启用私人消息?

注意:僵尸程序确实成功向我发送消息但不向其他用户发送消息.

Mar*_*ter 9

Telegram Bots无法与用户发起对话. 只有用户可以通过单击开始按钮来启动它.没有办法解决这个问题.

在您的情况下,您可以要求用户在通道中提问之前启动机器人,例如通过附加包含机器人URL(https://t.me/bot_username)的按钮.

  • @Pumych当用户按下按钮时,您会收到一个CallbackQuery更新/对象;您可以检查“表单”字段以检查哪个用户单击了按钮。无论如何,如果这是一个URL按钮,您将无法分辨,但是您可以看到谁向您的机器人发出了/ start命令。 (2认同)