Как написать рассылку для Telegram бота на Telebot Python
Задача: написать рассылку для бота с запросом ввести текст перед рассылкой и задержками для избежания бана от Telegram, но не совсем понимаю как правильно это сделать. Текущий код рассылки, который совсем не устаивает:
elif call.data == 'send': cursor.execute('SELECT id FROM login_id') result = cursor.fetchall() msg = 'текст рассылки' time.sleep(1) for x in result: bot.send_message(x[0], str(msg))
Отслеживать
задан 26 мар 2022 в 23:12
Alex Shark Alex Shark
21 1 1 серебряный знак 4 4 бронзовых знака
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
Для создания рассылки сохраняйте user_id в БД, после чего методом send_message отправляйте само сообщение-рассылку. Вот неплохое видел на этот счёт: ссылка
Если я Вас правильно понял, то Вам нужно осуществить некую задержку перед отправкой сообщения. Вы можете это сделать таким способом: Проверяете всех user_id входящих сообщений на наличие в вашей БД рассылки. Если да, то далее отправляете выше указанным метод сообщение.
Также советую прикреплять ваш код полностью или комментировать саму суть проблемы.
Отслеживать
ответ дан 26 мар 2022 в 23:28
thelonelyangel thelonelyangel
126 2 2 бронзовых знака
Немного непонятно, как сделать, чтобы у админа бот запрашивал текст рассылки перед её началом. Не могли бы вы помочь подсказав код? Видео смотрел ещё до вопроса и делал похожую рассылку, но там нет запроса текста перед рассылкой. Да и вместо БД используется текстовый файл 🙂
27 мар 2022 в 7:16
Если Вам надо получить текст для рассылки у админа, то просто проверяйте user_id на id админа, если это его, то берите текст сообщения и вызывайте функцию рассылки с этим текстом.
Как сделать рассылку в телеграм боте?
Суть вопроса.. Как сделать или можно ли это вообще сделать’ Рассылку определенному пользователю или пользователям к примеру (1, 2, 3) людям ? Код Aiogram для рассылки всем пользователям которые есть в БД:
@dp.message_handler(content_types=['text'], text='Рассылка') async def spam(message: Message): if message.from_user.id == ADMIN: await admin.send.set() await message.answer('Напиши текст рассылки') else: await message.answer('Вы не являетесь админом') @dp.message_handler(state=admin.send) async def start_spam(message: Message, state: FSMContext): if message.text == 'Назад': await message.answer('Главное меню') await state.finish() else: cur = conn.cursor() cur.execute(f'''SELECT user_id FROM users''') spam_base = cur.fetchall() print(spam_base) for z in range(len(spam_base)): print(spam_base[z][0]) for z in range(len(spam_base)): await bot.send_message(spam_base[z][0], message.text) await message.answer('Рассылка завершена') await state.finish()
Буду благодарен за ответ.
- Вопрос задан более года назад
- 489 просмотров
Создание массовой рассылки с использованием Aiogram Broadcaster Library
Aiogram Broadcaster Library — это сторонняя библиотека для Python, предназначенная для работы с aiogram, асинхронным фреймворком для создания ботов на платформе Telegram. В этой статье мы рассмотрим, как использовать Aiogram Broadcaster для создания и отправки массовых рассылок ваших пользователей или групп.
Установка
Для начала установите Aiogram Broadcaster Library с помощью pip:
pip install aiogram-broadcaster
Также убедитесь, что у вас установлен aiogram:
pip install aiogram
Пример кода
Для начала импортируйте необходимые библиотеки и создайте экземпляр бота:
import logging from aiogram import Bot, Dispatcher from aiogram.contrib.middlewares.logging import LoggingMiddleware from aiogram_broadcaster import TextBroadcaster API_TOKEN = "YOUR_BOT_TOKEN" logging.basicConfig(level=logging.INFO) bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.middleware.setup(LoggingMiddleware())
Теперь создадим экземпляр TextBroadcaster и настроим его:
broadcaster = TextBroadcaster(dp) async def send_daily_broadcast(): await broadcaster.broadcast(["user1", "user2", "user3"], "Ежедневная рассылка: Ваши новости на сегодня")
В этом примере мы создаем функцию send_daily_broadcast , которая отправляет сообщение «Ежедневная рассылка: Ваши новости на сегодня» пользователям с именами «user1», «user2» и «user3». Здесь вы можете указать любые идентификаторы пользователей или групп, которым необходимо отправить рассылку.
Чтобы отправить рассылку в определенное время каждый день, мы можем использовать библиотеку aiocron для создания расписания:
pip install aiocron
Импортируйте aiocron и добавьте cron-задачу для отправки рассылки:
import aiocron @aiocron.crontab("0 9 * * *") async def schedule_daily_broadcast(): await send_daily_broadcast()
В данном примере рассылка будет отправляться каждый день в 9:00 утра. Вы можете настроить время отправки, изменив cron-выражение.
Запуск бота
Теперь, когда наш бот готов, давайте запустим его:
from aiogram import executor if __name__ == "__main__": from handlers import * executor.start_polling(dp, skip_updates=True)
Вывод
Aiogram Broadcaster Library — это полезное дополнение к основным возможностям aiogram, позволяющее легко создавать и отправлять массовые рассылки вашим пользователям или группам. В этой статье мы рассмотрели, как настроить и использовать Aiogram Broadcaster для отправки сообщений по расписанию.
С использованием этой библиотеки вы можете сделать своего бота более функциональным, отправлять уведомления, новости или другую полезную информацию вашим пользователям. Это может быть особенно полезно для бизнес-ботов, сообществ и других приложений, где важно держать аудиторию в курсе последних обновлений и событий.
Не забывайте, что Aiogram Broadcaster Library предлагает не только отправку текстовых сообщений, но и другие виды рассылок, такие как изображения, видео и документы. Вы можете поэкспериментировать с различными типами контента, чтобы сделать вашу рассылку более интересной и привлекательной для аудитории.
Вопросы с меткой [рассылка]
Руководство по использованию метки рассылка отсутствует.
46 вопросов
Конкурсные
Неотвеченные
- Конкурсные 0
- Неотвеченные
- Цитируемые
- Рейтинг
- Неотвеченные (мои метки)
6k показов
Как написать рассылку для Telegram бота на Telebot Python
Задача: написать рассылку для бота с запросом ввести текст перед рассылкой и задержками для избежания бана от Telegram, но не совсем понимаю как правильно это сделать. Текущий код рассылки, который .
Массовая рассылка с помощью telethon. Вопрос по оптимизации
Не смотря на то, что само сообщение изменяется случайным образом каждому следующему пользователю, и стоит случайная задержка — мут прилетает примерно через 10 отосланных сообщений. Прошу дать .
проблема с рассылкой
При отправке письма через эту программу через английское имя проходит, но сразу летит в спам, русское имя вообще не поддерживает вылазят такие ошибки The mail system [email protected]: host gmail-.
697 показов
Рассылка сообщений в группе вконтакте
я написал бота для группы вконтакте на Python, обычный бот написанный на vk_api с базой sqlite3.вопрос заключается в том, можно ли как то реализовать рассылку сообщений только тем пользователям у .
118 показов
Ежедневные уведомления на aiogram
Хочу чтоб бот уведомлял пользователей каждый день в 8 утра, есть бд с всеми айдишниками, только не знаю как прикрутить к боту функцию проверки времени или что то подобное. Как лучше такое реализовать? .
27 показов
Как избавится от закрепленных картинок в электронных письмах при верстке?
Сверстал письмо для электронной почты и эти картинки бесят. каждая картинка весит меньше 100кб все alt написал
237 показов
Создание бота для рассылки сообщений в ВК
Есть у меня задача сделать бота для рассылки сообщений в вк, но не совсем обычного. Нужно чтобы он с моего ВК аккаунта писал в группы забитые в какой-нибудь базе данных. Т.е. в базе данных будут .
Как указать ник, данные отправителя рассылки в боте aiogram, следующим сообщением
@dp.callback_query_handler(text=’next’, state=bot_mailing.state) async def start(call: types.CallbackQuery, state: FSMContext): users = await commands.select_all_users() data = await state.
1k показов
Как сделать рассылку в Вконтакте с помощью python
Есть бот, на python, с POSTGRESQL и надо в него внедрить рассылку, кол-во пользователей, у этого бота, измеряется в тысячах, на данный момент в базе чуть больше 4к человек, надо как-то быстро всем им .
816 показов
Как сделать рассылку пользователям телеграм бота с удалением по нажатию на инлайн кнопку? Python, aiogram
Создаю телеграм-бота с рассылкой, которая удалится при нажатии на Inline-кнопку. Подключена база данных sqlite3, и рассылка отправляется всем, но не могу сделать чтобы была возможность удаления. .
37 показов
Рассылка уведомлений через электронную почту по достижении определенной даты
Есть база сотрудников, у которых каждый год должен проходить экзамен, с момента вступления в должность. Многие забывают о нем, так что необходимо сделать рассылку или уведомление пользователям по .
95 показов
Рассылка приходит только одному пользователю
Есть у меня функция, которая записывает id пользователей, а другая функция делает рассылку этим пользователям. Все было хорошо, но по непонятной причине уведомление стало приходить только одному .
Ошибка в коде для рассылки через форму на сайте. Connection failed. Error #2: stream_socket_enable_crypto(): SSL operation failed with code 1
Учусь делать сайт, возникла вот такая ошибка. Код предназначен для рассылки на несколько адресов через форму на сайте. Я так понимаю нужен сертификат ssl? можно ли как-то обойтись без него, ну или как .
529 показов
Рассылка в телеграмм боте python telebot: «RuntimeWarning: coroutine ‘subscribe’ was never awaited task»
необходимо сделать рассылку, чтобы пользователь выбирал команду подписки/отписки и ему приходили новости, пока что пробовала настроить команды и подключение бд, где будет фиксироваться состояние .
492 показа
Java рассылка сообщений Telegram bot как сделать? Как лучше?
Возник вопрос по поводу рассылки сообщения в Telegram bot. Chat id храниться в БД. Как сделать рассылку сообщений есть вариант с : https://api.telegram.org/botTOKEN/sendMessage?chat_id=CHAT_ID&.
15 30 50 на странице
-
Важное на Мете
Связанные метки
Подписаться на ленту
Лента последних активных вопросов с меткой [рассылка]
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.3.2953
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.