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

Как создать рассылку в Telegram

Рассылки в Telegram используется бизнесом для рекламы товаров или услуг, информирования людей о любом событии, приглашении или приветствии. В SendPulse можно отправлять рассылки в Telegram с текстом, изображением, файлом и кнопкой перехода на свой ресурс или запуска цепочки для массового оповещения по всей базе или сегментированной группе подписчиков.

Подписчиками на Telegram чат-бот — это пользователи, которые перешли по ссылке на ваш бот и нажали «Запустить» или подписались через виджет, добавленный на сайте. А также подписчиком может быть канал или группа, где вы являетесь администратором и куда добавили своего бота (этот канал будет отображаться как отдельный контакт в «Аудитории» чат-бота).

Чтобы создать рассылку, в разделе «Чат-боты» перейдите на вкладку «Главная» и нажмите «Создать рассылку» (Create campaign).

Содержание

Выберите подключенный бот

Выберите бота, на аудиторию которого будет отправляться рассылка.

Сегментируйте аудиторию

Чтобы фильтровать получателей, выберите чекбокс «Сегментировать получателей» (Segment recipients). Ваша рассылка будет отправлена только тем, кто отвечает заданному условию. Например, если вы собираете дополнительные переменные во время подписки, создаете глобальные переменные или устанавливаете тег, вы можете производить за ними сегментацию по условиям «Переменная» и «Теги».

Можно активировать опцию «Активен за последние сутки», чтобы сделать рассылку тех, кто взаимодействовал Telegram ботом за последние 24 часа.

Чтобы добавить несколько условий для более персонализированного сообщения, нажмите кнопку «Добавить условие» (Add the list segmentation criteria). А когда определите ее, нажмите кнопку «Применить» (Apply).

Добавьте текст сообщения

Введите сообщение. Ограничение по длине одного текстового блока – 2000 символов.

В него еще можно вставлять переменные и эмодзи. Для этого нажмите <> в правом верхнем углу текстового поля и выберите требуемую переменную из списка. Каждому пользователю пришлет сообщение со значением переменной из его контакта. Например, начать сообщение с обращением к имени и включить данные по регистрации или заказу.

Добавьте кнопку

Вы можете добавить кнопку со ссылкой на ваш ресурс, с запуском цепочки или кнопкой оплаты. Разместить его можно под текстом или любым другим элементом.

Нажмите кнопку «Добавить кнопку» (Add button).

Продолжить цепочку

Выберите тип кнопки «Продолжить цепочку» (Continue flow) и цепочку, которая отправится по щелчку на кнопку.
Добавьте текст кнопки. Ограничение по длине – до 256 символов.

Ссылка

Вы можете добавить ссылку на внешний источник и запуск цепочки сообщений после перехода подписчика по ссылке. Выберите тип кнопки «Ссылки» (URL) и добавьте ссылку.

Также для кнопки типа «Ссылка» (URL) вы можете добавить ссылку на веб-приложение, например, на одностраничный интернет-магазин. Активируйте опцию «Открыть во всплывающем Web-App окне» (Open in web app pop-up), чтобы по ссылке открывался попап для перехода к приложению.

Вы можете создать интернет-магазин с товарами, корзиной, формой для сбора контактных данных и привязать ссылку к кнопке в Telegram. Пользователь может нажать кнопку, а затем оформить свою покупку в отдельном окне.

На самой странице можно добавить JS-код от Telegram, который работает с данными из мессенджера и передает информацию о подписчике.

Чтобы включить отправку цепочки, активируйте трекинг в настройках бота.

Оплата

Доступно на тарифе Pro и выше, а также на время бесплатного семидневного пробного периода

В рассылках SendPulse можно добавлять кнопки оплаты, по которым подписчики смогут оплачивать товары прямо в чате Telegram. Для этого подключите метод оплаты, а в настройках кнопки выберите платежную систему, сумму и введите название товара.

Вы также можете продумать и добавить сценарий цепочки чат-бота после успешной оплаты.

В одной рассылке можно добавить до 25 кнопок всего и до 4 кнопок в ряд.

Добавьте элементы

Также можно добавить дополнительные медийные элементы: картинку, карточку, файл, видео и дополнительно текст и кнопки.

Для этого нажмите кнопку «Добавить кнопку» (Add botton) и выберите нужный элемент.

Текст

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

Картинка

Добавьте картинку в форматах JPG и PNG размером до 2 MB, а также краткое описание.

Карусель

Доступно на тарифе Pro и выше, а также на время бесплатного семидневного пробного периода

В одну карту можно добавить изображение, заголовок – до 32 символов, описание – до 80 символов и 3 кнопки со ссылкой на другую цепочку, внешний источник или форму оплаты. Карточек может быть не более 10 в карусели. Чтобы добавить новую, щелкните плюс справа.

Файл

Поддерживаемые форматы файла: zip, pdf и gif. Максимальный размер вложения – 20 MБ. Вы можете загрузить файл со своего устройства или добавить на него ссылку.

Видео и аудио

Доступно на тарифе Pro и выше, а также на время бесплатного семидневного пробного периода

Вы можете скачивать видео и аудио до 20 МБ.

Предварительный просмотр

Элементы можно перемещать вниз и вверх, удалять и копировать. Для этого наведите на нужный блок и справа появятся кнопки.

После добавления всех элементов рассылки сделайте тестовую отправку и просмотрите, как будет выглядеть сообщение на устройстве.

Если вы добавили весь необходимый контент, нажмите кнопку «Далее» (Next).

Выберите время отправки

В следующем окне можно выбрать название рассылки – его будете видеть только вы в списке «Мои рассылки».

А также время отправки(когда отправлять) — можно отправить сразу или запланировать на определенную дату и время.

Нажмите «Отправить рассылку» (Send a campaign) – ваша рассылка отправится получателям.

Telegram имеет ограничение на отправку – 100 сообщений в секунду. Поэтому отправка на обширный список может происходить постепенно.

Также у Telegram нет ограничений на отправку сообщений пользователям в отличие от Facebook. Вы можете отправлять сообщения пользователям, которые не привлекались в последние 24 часа. Но используйте это разумно, не пытайтесь послать пользователю слишком много сообщений, иначе это может привести к жалобам и блокировкам бота.

Редактирование запланированной рассылки

Если вы запланируете отправку на другое время, то после создания рассылки вы можете отредактировать ее еще раз до отправки. Перейдите в список рассылок, выберите рассылку и в поле «Статус» нажмите «Редактировать» (Edit). Чтобы отменить отправку рассылки, нажмите «Отменить».

Удаление рассылки

Доступно на тарифе Pro и выше, а также на время бесплатного семидневного пробного периода

Если вы случайно отправили рассылку, вы можете удалить её у получателей. Для этого перейдите в список рассылок, нажмите на раскрывающееся меню для нужной рассылки и выберите «Удалить сообщения рассылки» (Delete campaign messages). После этого подтвердите удаление в окне, которое появится. Вы также можете удалить сообщение на странице самой рассылки в поле «Статус» (Status).

Анализ рассылки

По каждой рассылке можно просмотреть подробную информацию: сколько сообщений было доставлено и сколько подписчиков взаимодействовало с рассылкой.

Для этого перейдите на страницу «Мои рассылки» и щелкните нужную рассылку из списка. Перейдите на страницу выбранной рассылки, где вы увидите статус и статистику рассылки, а также список получателей.

Вы также можете экспортировать файл CSV вместе со списком получателей кампании и статусом доставки в рамках платного тарифного плана.

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

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

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

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

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

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

  • Вопрос задан 07 мая
  • 122 просмотра

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)

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

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