Как отправить сообщение всем пользователям бота telegram
Перейти к содержимому

Как отправить сообщение всем пользователям бота telegram

  • автор:

Как отправить сообщение всем пользователям бота Telegram?

На сколько я понял, нельзя так делать. Необходимо узнать id разговора и только на него можно отправлять сообщения. Например, так это можно сделать с помощью flask :

Вот так можно сделать, чтобы бот по запросу get id отдавал id разговора:

Вы должны хранить на своей стороне id всех чатов, когда-либо инициированных пользователями с вашим ботом. Тогда Вы сможете отправить сообщения по всем имеющимся id, то есть всем пользователям. В документации эти параметры являются обязательными: Telegram Bot API Получить эти данные с серверов телеграмма нет возможности.

Я делаю так, просим написать пользователей чтонить в бота (или выполнить /start), далее делаем get запрос:

Там список последний сообщений и ID chat, их и подставляем в sendMessage

Выход только один, хранить id всех кто когда либо писал вашему боту, например в базе данных, и в следствии отправлять каждому сообщение.

В случае с ботами user_id == chat_id .

При рассылке нужно учитывать лимиты Telegram Bot API:

When sending messages inside a particular chat, avoid sending more than one message per second. We may allow short bursts that go over this limit, but eventually you’ll begin receiving 429 errors.

If you’re sending bulk notifications to multiple users, the API will not allow more than 30 messages per second or so. Consider spreading out notifications over large intervals of 8—12 hours for best results.

Also note that your bot will not be able to send more than 20 messages per minute to the same group.

Судя по документации Telegram Bot API, возможно в будущем будет добавлена возможность делать рассылку:

Как отправить сообщение всем пользователям бота telegram

Вы должны хранить на своей стороне id всех чатов, когда-либо инициированных пользователями с вашим ботом. Тогда Вы сможете отправить сообщения по всем имеющимся id, то есть всем пользователям. В документации эти параметры являются обязательными: Telegram Bot APIПолучить эти данные с серверов телеграмма нет возможности.

user avatar

When sending messages inside a particular chat, avoid sending more than one message per second. We may allow short bursts that go over this limit, but eventually you’ll begin receiving 429 errors.

If you’re sending bulk notifications to multiple users, the API will not allow more than 30 messages per second or so. Consider spreading out notifications over large intervals of 8—12 hours for best results.

Also note that your bot will not be able to send more than 20 messages per minute to the same group.

Как отправить сообщение всем пользователям бота Telegram?

Я делаю так, просим написать пользователей чтонить в бота (или выполнить /start), далее делаем get запрос:

Там список последний сообщений и ID chat, их и подставляем в sendMessage

Aleksandr Skobeltcyn's user avatar

Вы должны хранить на своей стороне id всех чатов, когда-либо инициированных пользователями с вашим ботом. Тогда Вы сможете отправить сообщения по всем имеющимся id, то есть всем пользователям. В документации эти параметры являются обязательными: Telegram Bot API Получить эти данные с серверов телеграмма нет возможности.

Выход только один, хранить id всех кто когда либо писал вашему боту, например в базе данных, и в следствии отправлять каждому сообщение.

В случае с ботами user_id == chat_id .

При рассылке нужно учитывать лимиты Telegram Bot API:

When sending messages inside a particular chat, avoid sending more than one message per second. We may allow short bursts that go over this limit, but eventually you’ll begin receiving 429 errors.

If you’re sending bulk notifications to multiple users, the API will not allow more than 30 messages per second or so. Consider spreading out notifications over large intervals of 8—12 hours for best results.

Also note that your bot will not be able to send more than 20 messages per minute to the same group.

Судя по документации Telegram Bot API, возможно в будущем будет добавлена возможность делать рассылку:

Отправка сообщений пользователям с бота в Telegram

Woman and phone

Если вы читаете данную статью, значит, скорей за все имеете свой бот в телеграмме. Соответственно расписывать и объяснять как создать бота я здесь не буду. (Возможно в будущем создам отдельную статью по этому поводу, но какой в этом смысл, ведь в гугле их пруд пруди).

Надеюсь вы используете библиотеку python-telegram-bot . Если это не так, увы, эта статья не для вас…хотя…вы попробуйте, возможно у вас тоже будет работать данный пример (либо сделаете по аналогии).

Для отправки сообщений создадим новую функцию и назовем её send_message , передадим параметры bot и job .

Далее нам нужно получить chat_id пользователей. (Надеюсь вы подключили к своему боту базу данных, либо записываете в файл chat_id от всех пользователей которые когда-либо пользовались вашим ботом). После чего используя метод sendMessage указываем параметры chat_id пользователя и отправляемый текст text.

В итоге у нас должно получиться:

И так, что же мы здесь написали, давайте разберемся:

@mq.queuedmessage — Указываем, что сообщения будут отправлены не сразу все, а в порядке очереди, так как телеграмм ограничивает отправку сообщений в секунду. Если не ошибаюсь, не больше 30 сообщений в секунду. for user in get_subscribed(db) Получаем список пользователей с базы данных, get_subscribed и прохожусь по каждому пользователю циклом вытягивая его chat_id

Пол дела сделано, осталось отправить сообщение. Для этого переходим в главную функцию main() (или как она у вас там называется)

Что бы один раз отправить сообщение я обычно делаю следующее — ставлю интервал в 10 минут, жду пока сообщения отправляться, останавливаю бота и комментирую эту строку, затем снова запускаю бота. Можно конечно сделать это через Условие, на подобии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *