У меня есть канал/группа телеграммы, куда я добавляю участников вручную, и я вручную удаляю/удаляю пользователей через один/два/три месяца. Есть ли способ выполнить эту задачу автоматически, я имею в виду, можем ли мы удалить/выгнать пользователя из канала/группы автоматически или по расписанию?
Любой пример кода Python поможет понять. Спасибо.
VikaS GuttE 21 Сен 2021 в 19:26
3 ответа
Вы можете запланировать любое действие, используя python-telegram-bot , а также может запланировать kick_chat_member
Читать полную документацию здесь https://python-telegram-bot.readthedocs.io
Himanshu kumar 21 Сен 2021 в 19:42
У вас есть рабочий пример или видео для реализации kick_chat_member , извините, я новичок в python, поэтому не знаю, как использовать это и реализовать в Telegram. Спасибо за помощь.
VikaS GuttE
23 Сен 2021 в 20:33
Планирование kick_chat_member невозможно
Ali Padida
1 Окт 2021 в 20:30
Это возможно, если вы получаете время каждые 5 минут и всегда проверяете это время, когда хотите пнуть,
Как удалить пользователя из группы (группового чата) в Telegram
Himanshu kumar
2 Окт 2021 в 21:02
Вы можете заблокировать пользователя в группе на определенный период времени, используя kick_chat_member. Функция вернет True , если пользователь успешно удален.
# kick a user from a group m = context.bot.kick_chat_member( chat_id=»-1001572091573″, user_id=’123456789′, timeout=int(time.time() + 86400)) # expiry after 24h
Вам необходимо получить chat_id группового чата и user_id пользователя для блокировки: вы можете сделать это, перехватив такие события, как new_chat_members , которые предоставляют всю информацию, когда новый пользователь добавлен в группу
# handler to process new member event updater.dispatcher.add_handler( MessageHandler(Filters.status_update.new_chat_members, new_member)) def new_member(update, context): logging.info(f»new_member : «) chat_id = update.message.chat.id user_id = update.message.from_user.id
Бот должен иметь возможность выполнять операции такого типа, поэтому убедитесь, что он является администратором или имеет привилегию ban user .
Подобные операции планирования (очевидно) не охватываются Telegram BOT API, но это логика, которую должно реализовать приложение/чат-бот.
Вам необходимо позаботиться о следующем:
- получить chat_id (см. выше) и сохранить его для последующего пользователя
- сохранять идентификаторы участников (см. выше), когда они присоединяются к группе, вместе с датой (чтобы иметь возможность установить, как долго они были частью группы)
Хороший способ реализовать задачи на Python — использовать расширенный планировщик Python.
from apscheduler.schedulers.background import BackgroundScheduler scheduler = BackgroundScheduler() scheduler.add_job(ban_members, ‘interval’, days=30) scheduler.start() def ban_members(): # get users from DB # establish who needs to be removed # call kick_chat_member
Beppe C 2 Окт 2021 в 12:21
Они не имели в виду запрет на определенный период времени. Они имели в виду планирование запрета. Так что, если пользователь присоединяется к группе, он будет забанен через месяц.
Ali Padida
1 Окт 2021 в 20:31
Я добавил пример кода для реализации фоновой задачи, блокирующей пользователей по истечении заданного периода времени. Примечание: это настраиваемая логика приложения, поэтому она не является частью Telegram Chatbot API или событием REST Telegram.
2 Окт 2021 в 12:29
GuttE Я думаю, что мой ответ должен предоставить вам решение, которое вы ищете (если вы используете библиотеку Python Telegram API). Могу уточнить/уточнить, если нужно.
3 Окт 2021 в 17:58
— Я пробовал выше, но не уверен, что что-то не так, также я не уверен, где и как я могу хранить данные пользователя. у вас есть рабочий код или образец? Я пробую это на replit.com для вашей информации. Спасибо за помощь.
VikaS GuttE
4 Окт 2021 в 16:39
Вы можете посмотреть на github.com/gcatanese/SampleTelegramQuiz. Это образец чат-бота Telegram с кодом для выполнения различных ответов. Как только вы получите user_id и chat_id , вам нужно где-то их сохранить (БД, файл), чтобы фоновая задача могла использовать их при запуске.
4 Окт 2021 в 16:58
Из-за документов официального Telegram Bot API невозможно запланировать banChatMember.
Что вы можете сделать, так это зарегистрировать пользователей в базе данных, включая поле под названием kick_date , и запустить скрипт заданий cron, чтобы проверить, не предшествует ли их kick_date текущее время, и использовать banChatMember , чтобы запретить их .
Я не публиковал никаких кодов после вашего вопроса;
- выглядело так, как будто вы ищете метод в Telegram API.
- Вы не упомянули, какой API бота Python Telegram вы хотите использовать.
- Предоставление образца кода для вашего вопроса (игнорируя причины 1 и 2) будет проектом для самого себя, поскольку он состоит из разных разделов кода. Я предлагаю вам разделить свой вопрос на эти части и искать/спрашивать о них:
- Как сохранить текущих членов в базе данных?
- Как сохранить новых членов в базе данных?
- Как периодически запускать скрипт на Python?
- Как кикать участников по id?
Я дам вам шаги, которые вы можете предпринять, чтобы достичь своей цели.
- После добавления участника в вашу группу вы получите обновление от Telegram, включающее поле new_chat_members :
< «update_id»: 436022554, «message»: < «message_id»: 259, «from»: < «id»: , «is_bot»: false, «first_name»: , «username»: , «language_code»: «en» >, «chat»: < «id»: , «title»: , «type»: «group», «all_members_are_administrators»: true >, «date»: 1633373553, «new_chat_members»: [ < «id»: , «is_bot»: false, «first_name»: , «username»: > ] > >
- Вы будете перебирать new_chat_members и добавлять их в свою базу данных вместе со временем kick_at .
- Напишите скрипт, чтобы получить ваших участников из базы данных и проверить, не пора ли их выгнать. ( kick_at now ) и используйте banChatMember для это важно.
Источник: question-it.com
Как кикнуть не активных пользователей в группе в телеграмм с помощью бота?
Есть чат фирмы в ней есть не активные пользователи, нужно написать бота который будет удалять тех кто молчит более двух недель. Писал простых чат ботов на питоне на telebot, начал разбираться с модеркой и нигде не могу найти инфу, мб есть что почитать или документация какая-нибудь?
- Вопрос задан более двух лет назад
- 650 просмотров
Решения вопроса 1
Автор Ботодрома (автоматизация Telegram, VK и др.)
Алгоритм такой:
— запоминаем иды пользователей, заходящих в чат
— запоминаем время последней активности пользователей
— крутим процесс, который раз в сутки обходит иды пользователей, и для тех, у кого со времени последней активности прошло более двух недель, вызываем kickChatMember
Ответ написан более двух лет назад
Нравится 1 Комментировать
Источник: qna.habr.com
Как удалить человека из беседы в Телеграм?
Нажать на троеточие, расположенное справа наверху. В меню откроется список контактов беседы; выбрать человека, которого нужно удалить. Нажать на контакт, удерживая палец несколько секунд. Во всплывающем окне выбрать действие «Удалить».
Как удалить человека из группы в телеграмм?
- Откройте приложение;
- Найдите в списке групп чат, который хотите удалить;
- Щёлкните по строке с нужным диалогом;
- В правом верхнем углу экрана нажмите на три точки;
- Выберите пункт «Покинуть группу» и подтвердите действие.
Как очистить историю в телеграмме в группе?
- Найдите в списке диалогов нужный.
- Нажмите по нему второй кнопкой мыши.
- Затем выберите пункт «Очистить историю». Очистка истории.
Как удалить человека из группы?
- Войдите в Google Группы.
- Нажмите на название группы.
- В меню слева нажмите Участники.
- Наведите указатель на имя каждого участника, которого нужно удалить установите флажок рядом с ним.
- В правом верхнем углу нажмите на значок «Удалить участника» для подтверждения нажмите ОК.
Как удалить участника из группы в телеграмме если нет админа?
- Открыть Telegram на ПК.
- Найти беседу в списке слева, зайти в нее.
- Выбрать контакт, нажать по имени правой кнопкой мыши.
- Выбрать из предложенных вариантов «Удалить».
Как выйти из группы Телеграм если ты создатель?
- для начала вы должны назначить администратора, чтобы он мог управлять группой в вашем отсутствии;
- затем, заходим в информацию о группе;
- находим себя в списке участников;
- нажимаем «Покинуть»;
- и затем «Ок».
Как удалить участника из группы в Ватсапе?
- Откройте групповой чат WhatsApp и нажмите на тему группы. Вы также можете нажать и удерживать группу во вкладке ЧАТЫ. Затем нажмите Другие опции > Данные группы.
- Нажмите на участника, которого вы хотите удалить.
- Нажмите Удалитьучастника> > ОК.
Как удалить участника группы Вайбер?
- Запускаем приложение, переходим в общий чат.
- Следуем в меню (кружок в правом углу экрана сверху).
- Выбираем раздел «Участники», ищем интересующий нас контакт.
- Рядом с именем пользователя будет крестик, нужно нажать на него.
- Подтверждаем желание кнопкой «Ок» или «Удалить».
Как удалить сообщения в телеграмме в группе?
В списке чатов выберите группу и правой кнопкой мышки кликните по сообщению. Дальше жмите кнопку «Удалить сообщение». Если есть пункт и вы хотите – сотрите его для всех участников.
Как очистить канал в телеграмме?
- На странице канала нажмите на значок в виде шестеренки.
- Теперь нажмите на строку «Информация о канале».
- Опустите страницу вниз и увидите кнопку «Удалить канал». Нажмите на нее.
- Подтвердите удаление канала.
- Второй способ .
- Нажмите на него и удерживайте, пока не появится меню. .
- Подтвердите удаление.
Как удалить участника из закрытой группы?
Если в вашей группе имеется достаточно большое количество подписчиков, воспользуйтесь специальной строкой «Поиск по участникам». В блоке «Участники» найдите пользователя, которого требуется исключить. С правой стороны от имени человека кликните по ссылке «Удалить из сообщества».
Как удалить участника сообщества ВК?
- Заходим в группу.
- Жмем Управление сообществом.
- Потом ищем раздел Участники и жмем.
- Выбираем человека (участника) и жмем Удалить из сообщества.
- Перезагружаем страницу.
Как удалить пользователя из группы в контакте?
В левой части окна расположены группы, которые находятся под вашим управлением, а справа место для вставки id подписчиков, которых нужно удалить.
Источник: dmcagency.ru