Как сделать рассылку в телеграм боте python
Перейти к содержимому

Как сделать рассылку в телеграм боте python

  • автор:

Как написать рассылку для 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 админа, если это его, то берите текст сообщения и вызывайте функцию рассылки с этим текстом.

Как сделать рассылку Telebot?

Нужно сделать рассылку пользователям телеграм бота на telebot, по айди которых есть в таблице user_id в столбце id, я знаю как сделать отправку по определенному айди, но так, чтобы оно проходилось по всем пользователям — нет, еще желательно надо с задержкой между отправкой разным пользователям, чтобы телеграм не банил, но, можно и без этого, заранее благодарен.

  • Вопрос задан 07 мая 2023
  • 400 просмотров

1 комментарий

Средний 1 комментарий

TosterModerator

Модератор @TosterModerator

Не надо ставить как можно больше тэгов. Лучше оставить один, но конкретный, с которым проблема.
См.п.3.1 Регламента. Также обратите внимание на п.3.2

Решения вопроса 1
Учу python. Готов к конструктивной критике.

1. Получаешь все id из базы
2. Циклом for проходишься по всем id которые получил.
3. Добавляешь time.sleep чтобы телега не забанила.
Пример:

user = "sql запрос" for i in user: bot.send_message(user[0], "Текст рассылки") time.sleep(0.5)

Как сделать рассылку в телеграм боте?

Суть вопроса.. Как сделать или можно ли это вообще сделать’ Рассылку определенному пользователю или пользователям к примеру (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()

Буду благодарен за ответ.

  • Вопрос задан более года назад
  • 702 просмотра

Создание массовой рассылки с использованием 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 предлагает не только отправку текстовых сообщений, но и другие виды рассылок, такие как изображения, видео и документы. Вы можете поэкспериментировать с различными типами контента, чтобы сделать вашу рассылку более интересной и привлекательной для аудитории.

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

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