Форум программистов, компьютерный форум, киберфорум
Python: API, боты
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
Telegram Bot

Рассылка подписчикам бота

12.05.2022, 17:30. Показов 2312. Ответов 10

Студворк — интернет-сервис помощи студентам
Как можно реализовать рассылку людям, подписавшимся на бота? (Библиотека telebot). Пробовал искать в гугле, но мне всегда выбивало туториалы по спаму в комментариях, не знаю что делать.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.05.2022, 17:30
Ответы с готовыми решениями:

Не работает рассылка бота
Добрый день У меня такая проблема, в базу данных записываются id,user_id,active, когда пользователь пишет /start. Это все работает, и так...

Telegram бот. отправка личного сообщения подписчикам бота
Используется Telegraf библиотека, пишется на javascript (node js) const { Telegraf } = require('telegraf'); const bot = new...

Взять смтп под рассылку своим подписчикам
Добрый день. Подскажите где взять смтп бесплатно под рассылку своим подписчикам на емалов 50000 в сутки коммерческого предложения. gmail...

10
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.05.2022, 17:49
1) подписчикам (если, конечно, речь не идет об употреблении ботом пользователей в пищу)
2) на бота можно подписаться?
0
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
12.05.2022, 17:55  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
1) подписчикам (если, конечно, речь не идет об употреблении ботом пользователей в пищу)
Ну везде, где я слышал про ботов, людей, которые пользуються им называли подписчиками бота
Цитата Сообщение от Jabbson Посмотреть сообщение
2) на бота можно подписаться?
Нажать старт, до этого он же тебе не сможет написать.
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.05.2022, 18:24
Цитата Сообщение от hasker2 Посмотреть сообщение
Ну везде, где я слышал про ботов, людей, которые пользуються им называли подписчиками бота
именно поэтому я и говорю, что "подписчик" и "подпищик" - это очень разные штуки.

Цитата Сообщение от hasker2 Посмотреть сообщение
Нажать старт, до этого он же тебе не сможет написать.
"начать диалог с ботом" и "подписаться на бота" это совсем не звучит одинаково. Вы когда с обычным пользователем начинаете диалог - считаете, что подписались теперь на него?

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

Добавлено через 7 минут
Можно сохранять всех, кто начал диалог (/start), но нет возможности определить пользователей, которые прекратили диалог (если пользователь прекратил диалог, бот не сможет послать ему сообщение).
0
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
12.05.2022, 19:11  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
Можно сохранять всех, кто начал диалог (/start), но нет возможности определить пользователей, которые прекратили диалог (если пользователь прекратил диалог, бот не сможет послать ему сообщение)
с помощью интернета написал код ниже:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
@bot.message_handler(commands=['sendtoall'])
def sendtoall(message):
    sent = bot.send_message(1377307544, 'Тескт?')
    bot.register_next_step_handler(sent, sendtoall)
def sendtoall(message):
    sendingtext = message.text
    if message.chat.id == 1377307544:
        for i in open('chatids.txt', 'r').readlines():
            bot.send_message(i, sendingtext)
@bot.message_handler(commands=['start'])
def start(message):
    with open('chatids.txt', 'a+') as chatids:
        print(message.chat.id, file=chatids)
но есть недостаток, если я нажму на /start к примеру 5 раз, мне рассылка прийдет 5 раз, как можно проверить, есть ли айди у списку уже, я пытался написать такую проверку, но что-то не вышло
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.05.2022, 19:17
Цитата Сообщение от hasker2 Посмотреть сообщение
как можно проверить, есть ли айди у списку уже
Python
1
2
3
4
lst = ['one', 'two', 'three', 'four', 'five']
 
if 'two' in lst:
    print("two u spispku uje")
0
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
12.05.2022, 19:38  [ТС]
Jabbson,
Python
1
2
3
4
5
6
    with open('chatids.txt', 'a+') as chatids:
        lst =  chatids.read().splitlines()
        if message.chat.id in lst:
            print('already in file')
        else:
        print(message.chat.id, file=chatids)
попробовал сделать, тепер в строке print(message.chat.id, file=chatids) ошибка expected an indented block, насколько я помню это ошибка с отступами, я их попереставил, но далее выбивает
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
12.05.2022, 19:47
Лучший ответ Сообщение было отмечено hasker2 как решение

Решение

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

Добавлено через 1 минуту
else: и print... не должны быть на одном уровне
1
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
13.05.2022, 17:32  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
нужно подучить язык, без одид
папе хочу написать, учить уже летом собираюсь, когда время будет
а решил это дописав код из интернета
Python
1
2
uniqlines = set(open(file, 'r', encoding='utf-8').readlines())
gotovo = open(file, 'w', encoding='utf-8').writelines(set(uniqlines))
у
Цитата Сообщение от hasker2 Посмотреть сообщение
def sendtoall(message):
, это для тех кому может понадобиться, уверен что не мне одному нужна расылка
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
13.05.2022, 17:41
else: и print... не должны быть на одном уровне
Цитата Сообщение от hasker2 Посмотреть сообщение
uniqlines = set(open(file, 'r', encoding='utf-8').readlines())
gotovo = open(file, 'w', encoding='utf-8').writelines(set(uniqlines))
В этом коде

- вы set два раза применяете к одним и тем же данным
- вы не закрываете свои файлы

Доп вопросы, которые было бы интересно продумать

- файл будет увеличиваться и увеличиваться, как будут удаляться пользователи, которые закрыли диалог с ботом, или которые закрыли свой аккаунт?
- возможно стоит задуматься над хранением данных в более удобоваримом формате, чем сплошной текст? БД? Pickle?
0
p
 Аватар для hasker2
84 / 44 / 16
Регистрация: 15.01.2021
Сообщений: 433
13.05.2022, 17:50  [ТС]
Цитата Сообщение от Jabbson Посмотреть сообщение
как будут удаляться пользователи, которые закрыли диалог с ботом, или которые закрыли свой аккаунт?
это мне кажеться невозможно сделать, но и не очень надо, там только 10 цифр, нужно 100000 разных людей чтобы база весила хотябы 1 мб, тем более бот будет на сервере, а город и магазин не очень большой для такого
Цитата Сообщение от Jabbson Посмотреть сообщение
- вы не закрываете свои файлы
исправил, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.05.2022, 17:50
Помогаю со студенческими работами здесь

Как отправит мыло 1000 подписчикам? Что лучше использовать ASP или Delphi?
При отправке мыла с помощью ASP сообщения отпавляются не всем адресатам, а только 10 из бд, и все это очень долго делается..... Увеличить...

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

Для ТГ бота нужно сделать вызывающийся список дат , чтобы юзер по команде получал список дат с мероприятиями у бота
Для ТГ бота нужно сделать вызывающийся список дат , чтобы юзер по команде получал список дат с мероприятиями у бота, как это реализовать?...

Как часто можно делать рассылку подписчикам и можно ли делать рассылку каждый день новым пользователям?
Можно ли делать рассылку каждый день, при условии, что каждый день рассылка будет идти новым пользователям? Не станет ли почтовый сервис за...

Рассылка писем, Тест на реакцию, Реакция тест, Рассылка писем, Тест на реакцию, как сделать
Как это сделать? Необходимо отправить сообщение по электронной почте списку адресатов, с уведомлением о прочтении. данное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru