Бот Telegram инициирует разговор с пользователем

Я пишу бота Telegram, чтобы упростить проблему, скажем, вы можете задавать вопросы боту на канале, и он отвечает вам лично. Когда бот получает команду, он принимает chat_id пользователя из: update.message.from_user.id

Но когда я делаю это, я получаю ошибку:

Unauthorized: Forbidden: bot can't initiate conversation with a user

Это звучит вполне логично, так как я предполагаю, что это мешает писать спам-боты. Вопрос в том, как мне это преодолеть? Как я могу позволить пользователю включить личные сообщения от бота?

Примечание: бот успешно отправляет сообщения мне, но не другим пользователям.

2 ответа

Решение

Telegram Bots не может начать разговор с пользователем. Только пользователь может инициировать его, нажав на кнопку запуска. Там нет никакого способа обойти это.

В вашем случае вы можете попросить пользователя запустить бот, прежде чем задавать вопросы на канале, например, прикрепив кнопку, содержащую URL-адрес бота ( https://t.me/bot_username).

message.from_user.id

попробуйте вместо этого

message.chat.id

Другие вопросы по тегам