Как отключить бота в Телеграмме python

Решил немного погрузиться в изучение Python, в процессе поставил задачу отойти от стандартного Hello World и попытаться написать сразу простого бота для Telegram. В итоге, бот может отвечать на заданные фразы, присылать внешний ip адрес и делать снимок с камеры. Скажу сразу, код не идеальный, но в процессе отладки ни один котик не пострадал.

Для начала сразу оговорюсь писать будем на Python версии 3 и будем использовать модули для облегчения жизни нашего проекта.

python3 — V
Python 3.7.5

Пишем мы на Ubunru 19.10, поэтому надо учитывать, что есть две версии установленного Python.

Установим PIP и необходимые пакеты:

apt install python3 — pip
pip3 install pytelegrambotapi
pip3 install PySocks

PIP – система управления пакетами, которая используется для установки и управления программными пакетами.

pytelegrambotapi – нужен для работы с API Telegram

PySocks – прокси сервер, иначе бот не будет работать.

Как было указано выше, пишем мы на Ubuntu, поэтому в директории пользователя /home/users-name/ создаем файлы bot-file.py и config.py

Создание телеграм-ботов на python (telebot) #9 / Удаление и редактирование сообщений

touch bot — file . py
touch config . py

Файл bot-file содержит код бота, а файл config необходим для конфигурации бота. В конфигурации необходимо будет указать список пользователей, которым разрешено взаимодействие с ботом.

Начнем с файла конфигурации, там все просто, необходимо просто указать id пользователя Telegram.

users = [ ‘id-user1’ , ‘id-user2’ ]

Переходим к файлу бота.

import config
import telebot
from telebot import apihelper
from telebot import types
import datetime
import logging
logger = logging . getLogger ( ‘log’ )
logger . setLevel ( logging . INFO )
fh = logging . FileHandler ( ‘someTestBot.log’ )
fh . setLevel ( logging . DEBUG )
formatter = logging . Formatter ( «%(asctime)s | %(levelname)-7s | %(message)s» )
fh . setFormatter ( formatter )
logger . addHandler ( fh )
### Прокси сервер
### Token telegram bot
bot = telebot . TeleBot ( ‘Token-bot’ , threaded = True )
### Функция проверки авторизации
def autor ( chatid ) :
strid = str ( chatid )
for item in config . users :
if item == strid :
return True
return False
### Клавиатура
keyboard1 = telebot . types . ReplyKeyboardMarkup ( )
keyboard1 . row ( ‘Привет’ , ‘Пока’ , ‘/ip’ , ‘/camera’ )
### Прием документов
def handle_docs_photo ( message ) :
chat_id = message . chat . id
downloaded_file = bot . download_file ( file_info . file_path )
with open ( src , ‘wb’ ) as new_file :
new_file . write ( downloaded_file )
bot . reply_to ( message , «Пожалуй, я сохраню это» )
except Exception as e :
bot . reply_to ( message , e )
### Прием фото
def handle_docs_photo ( message ) :
chat_id = message . chat . id
file_info = bot . get_file ( message . photo [ len ( message . photo ) — 1 ] . file_id )
downloaded_file = bot . download_file ( file_info . file_path )
src = ‘/home/users-name/received/’ + file_info . file_path ;
with open ( src , ‘wb’ ) as new_file :
new_file . write ( downloaded_file )
bot . reply_to ( message , «Фото добавлено» )
except Exception as e :
bot . reply_to ( message , e )
def start_message ( message ) :
if autor ( message . chat . id ) :
cid = message . chat . id
message_text = message . text
user_id = message . from_user . id
user_name = message . from_user . first_name

Телеграм бот на Python / #3 – Основной функционал бота

bot . send_message ( message . chat . id , ‘Привет, ‘ + user_name + ‘ Что ты хочешь от меня, собака сутулая!’ , reply_markup = keyboard1 )

bot . send_sticker ( message . chat . id , ‘CAADAgAD6CQAAp7OCwABx40TskPHi3MWBA’ )

bot . send_message ( message . chat . id , ‘Тебе сюда нельзя. Твой ID: ‘ + str ( message . chat . id ) )

bot . send_sticker ( message . chat . id , ‘CAADAgADcQMAAkmH9Av0tmQ7QhjxLRYE’ )
def camera_message ( message ) :
if autor ( message . chat . id ) :
bot . send_message ( message . chat . id , ‘Фото с камеры’ )
os . system ( ‘wget %s -O /tmp/photo.jpg’ % link )
imageFile = ‘/tmp/photo.jpg’
img = open ( imageFile , ‘rb’ )

bot . send_photo ( message . chat . id , img , caption = ‘Фото с камеры’ , reply_markup = keyboard1 )

bot . send_message ( message . chat . id , ‘Тебе сюда нельзя. Твой ID: ‘ + str ( message . chat . id ) )

bot . send_sticker ( message . chat . id , ‘CAADAgADcQMAAkmH9Av0tmQ7QhjxLRYE’ )
def prim_message ( message ) :
if autor ( message . chat . id ) :
link = ‘https://flammlin.com/pi’
os . system ( ‘wget %s -O /tmp/ip.txt’ % link )
docum = open ( ‘/tmp/ip.txt’ , ‘rb’ )
bot . send_message ( message . chat . id , docum , reply_markup = keyboard1 )
bot . send_sticker ( message . chat . id , ‘CAADAgADcQMAAkmH9Av0tmQ7QhjxLRYE’ )

bot . send_message ( message . chat . id , ‘Тебе сюда нельзя. Твой ID: ‘ + str ( message . chat . id ) )

bot . send_sticker ( message . chat . id , ‘CAADAgADcQMAAkmH9Av0tmQ7QhjxLRYE’ )
bot . polling ( )

Разберем некоторые интересные моменты, на которые следует обратить внимание.

Прокси

В данном примере используется Socks 5 прокси:

Еще по теме:  Как организовать аукцион в Телеграм

### Прокси сервер

Достаточно указать свои данные и запустить бот.

Token ID

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

### Token telegram bot
bot = telebot . TeleBot ( ‘Token-bot’ , threaded = True )

Авторизация

### Функция проверки авторизации
def autor ( chatid ) :
strid = str ( chatid )
for item in config . users :
if item == strid :
return True
return False

Для проверки пользователя используется функция проверки id пользователя из файла конфигурации. В случае успеха бот присылает сообщение и стикер, тоже самое в случае отказа.

Клавиатура

Красивые кнопочки любят все.

### Клавиатура
keyboard1 = telebot . types . ReplyKeyboardMarkup ( )
keyboard1 . row ( ‘Привет’ , ‘Пока’ , ‘/ip’ , ‘/camera’ )

Второй горизонтальный ряд добавляется легко, просто пишем снова – keyboard1.row.

Прием документов и фотографий

Бот умеет сохранять документы и фотографии, которые скачиваются в папку received. Папку предварительно необходимо будет создать в профиле пользователя, где создавали файлы бота и файла конфигурации.

Wget

С вопросом получения картинки с камеры и внешнего ip адреса пришлось повозить подольше. Но в итоге через папку temp и вызов через bash wget все получилось.

Планировщик crontab

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

Для начала необходимо точно определить где и какая версия Python установлена.

Источник: flammlin.com

Как удалить бота в Телеграмме

Пользователи уже привыкли к выражению «бот в Телеграмм», а некоторые научились ими пользоваться. После подключения бота или начала беседы с ним, он остаётся в контактах и может регулярно снабжать ненужной информацией. Из этой статьи вы сможете прочитать, каким образом удалить от бота в своём аккаунте Телеграмм.

Телеграмм

Что такое бот в Телеграмм?

Боты – это компьютерные программы, которыми не управляет человек. Они настраиваются таким же образом, как и другое ПО. Но в момент работы генерируют текст и выполняют другие действия, для которых предназначаются. В Телеграмме боты умеют выполнять большой спектр задач: разговаривать при помощи чата, искать информацию, генерировать файлы, предлагать услуги, обмениваться данными и прочее. В то же время они не умеют всего, а выполняют только те действия, которые прописаны разработчиком.

Телеграмм бот

В Телеграмме эти программы облегчают работу создателям групп. Они могут встречать посетителей, предлагать им статьи и давать советы. По этой причине появились они в других социальных сетях – Вконтакте. Есть распространённое мнение, что бот может взломать аккаунт пользователя и похитить важные данные.

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

Распознать бота не составит труда – часто они говорят избитыми фразами, отвечают только на те вопросы, которые умеют распознавать. Могут ссылаться на администратора или же сами называют себя ботом. Для начала беседы с ними пользователю нужно нажать на кнопку «Старт».

Как удалить бота в Telegram

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

botfather

Это «отец» всех ботов Телеграмм для управления контроля за ними. Главный бот доступен обычным пользователям и найти его можно через поиск. Для активации его работы необходимо нажать на кнопку «Старт», после чего появится список команд для управления ботами.

Команды для бота

  1. В строке для ввода текст напишите /mybots;
  2. Под командой появится список ботов, подключенных к аккаунту;

Названия ботов

Выберите название бота, от которого нужно избавиться;

Удалить бота

На панели управления появится кнопка «Delete bot»;

Если в списке есть другие названия ботов, вы их сможете удалить через botfather. Для возврата к предыдущему меню выберите кнопку «Back to menu». При отключении бота его функции больше не распространяются на аккаунт пользователя. Названия в списке контактов также исчезнет.

Как отключить уведомления от ботов в Телеграмм

Пользователь может оставить бота в Телеграмм в своём аккаунте и не удалять его. Но настроить его так, чтобы функции и возможности в приложении не мешали использовать программу. В версии для компьютера и телефона функции управления находятся в профиле бота. Доступно отключить уведомления или изменить другие параметры.

Откройте чат с ботом, чтобы в интерфейсе появилась панель управления, после чего выберите кнопку меню возле его названия. В панели выберите «Уведомления», чтобы переключатель изменил положение.

Еще по теме:  Если заблокировать в Телеграмме переписка пропадет или нет

Чат с ботом

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

Как сделать бота в Телеграмм

Средствами специального для этого приложения ПО пользователи могут создавать ботов в Телеграмм без знания программирования. Этой программой является botfather, о котором вы уже знаете. У него есть средства управления всеми зарегистрированными в этом сети ботами по той причине, что botfather раздаёт идентификаторы для их создания. Разработчики называют их токенами.

Этот шифр не должен знать никто другой, кроме самого создателя. Если это произойдёт, у бота появится новый владелец или несколько.

Создать бота

Для запуска и настройки нового бота, вызовите в своём приложении botfather в поиске и в списке доступных команд выберите «Create a now bot». За этим следует настройка – название бота, описание его действий, ссылку на него в сети Телеграмм. Боту также понадобится аватарка. Общая настройка бота происходит при помощи команд: setuserpic, setdescription и других. Все они указаны в интерфейсе botfather, пользователь может выбирать, чтобы не прописывать вручную.

Настройки бота

После основной настройки по созданной ссылке посетите страницу бота для обзора и дальнейшей настройки. При помощи Телеграмм можно настроить внешний вид бота. Для получения других уникальных функций для него понадобится воспользоваться сторонними сервисом. В Интернете их существует немало и большинство из них платные.

Инструкцию о том, как настроить бота на других сайтах и придать ему полезные функции пользователь сможет прочитать на самих ресурсах. Необходимо быть осторожным, так как есть сайты, которые занимаются воровством ботов.

Как сделать текстового бота в Телеграмм

Если к боту не слишком много требований, он может быть сделан через предлагаемый редактор botfather. Пользователю понадобится вводить все заготовки текста вручную или копировать их из других источников. В меню редактора нажмите на кнопку «Edit commands» и добавьте текст, при помощи которого бот будет общаться с посетителями вашего канала. В дальнейшем команды можно будет добавлять через пользовательский интерфейс, перейдя по ссылке на бота.

Страница с ботом

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

Видеоинструкция

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

Источник: it-doc.info

Как написать Telegram-бота на Python: инструкция

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

Инструкция подойдет для новичков, которые знают Python на базовом уровне, пробовали писать код и установили на компьютер редактор кода.

Первый этап: подготовка проекта и развертывание окружения

Найдем в поиске Telegram BotFather — официального бота мессенджера, который создает другие боты и управляет ими. В интерфейсе выбираем /start, затем — /newbot, и следом задаем имя и адрес. В этой инструкции это будут Elbrus Reminder и elbrus_reminder_bot соответственно.

После этого шага BotFather пришлет сообщение с токеном и ссылкой на бот:

Токен нужно хранить в безопасном месте — он дает контроль над ботом. и, как следствие, позволяет получить доступ к данным пользователей.

На время закроем Telegram и создадим на компьютере папку с именем проекта: например, reminder_bot. Откроем папку в среде разработки и создадим рабочий файл с понятным названием — bot.py.

Откроем терминал редактора кода и создадим для проекта новое окружение. В среде разработки с помощью команды python -m venv .venv создадим папку с окружением .venv .

Если окружение не активировалось автоматически, можно сделать это вручную, прописав путь к файлу активации в формате source .venv/bin/activate , где source — команда языка программирования Bash. Другой вариант — перезапустить среду разработки. Он работает для Visual Studio Code, но нужно предварительно принять предложение редактора привязать среду к папке проекта сразу после создания окружения.

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

Второй этап: подключаем библиотеки

Проект создан и окружение готово: пора переходить к написанию кода. По правилам хорошего тона в первую очередь через import добавляем несколько предустановленных библиотек Python. При создании бота нам пригодятся logging и time , которые отвечают за определение времени и логирование сообщений.

Еще по теме:  Как создать 2 акк в ТГ с одного номера телефона

import time import logging

Затем добавим асинхронную библиотеку aiogram, на основе которой будет работать бот. Она, например, определяет, какое сообщение пришло, как его нужно обработать и какие порты нужны. Сначала устанавливаем ее через терминал командой pip install aiogram , а в редакторе кода пишем следующее:

from aiogram import Bot, Dispatcher, executor, types

Из этой библиотеки нам нужны только отдельные модули и классы — все ее возможности для создания базовой версии бота не пригодятся. Поэтому вместо одиночного import использована команда from <> import <> .

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

TOKEN = «здесьбудетваштокенот от BotFather» MSG = «Программировал ли ты сегодня, <>?»

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

Теперь создадим экземпляр класса Bot , передав ему в качестве аргумента наш токен, и экземпляр класса Dispatcher (dp), который в качестве аргумента получит bot . В результате получаем связку объекта класса bot с ключем, который привязан к боту, и диспетчера, который привязан к этому боту:

bot = Bot(token=TOKEN) dp = Dispatcher(bot=bot)

Следующим шагом добавим конструкцию под названием декоратор ( massage_handler ) — она помогает получить из диспетчера нужный функционал. В качестве аргумента прописываем команды, которые обрабатывает декоратор — в данном случае это команда /start , которая запускает бот.

Под декоратором прописываем функцию, которая будет обрабатывать команду /start и определяет логику, в соответствии с которой будет работать бот. Поскольку мы работаем с асинхронной библиотекой, функция тоже должна быть асинхронной. Для этого перед указанием def добавим ключевое слово async :

async def start_handler(message: types.Message):

Функция приветствует пользователя и обрабатывает сообщение, которое он отправляет в ответ. Из сообщения можно получить информацию о пользователе, который его прислал, время отправки и его ID.

Создаем переменную и сохраняем в ней user id :

user_id = message.from_user.id

Затем получаем из сообщения короткое и полное имя пользователя:

user_name = message.from_user.first_name user_full_name = message.from_user.full_name

Для того, чтобы в логах отображалась информация о пользователе, передаем в виде текста ID и полное имя, а также используем возможности библиотеки time , чтобы определить время, когда писал пользователь:

logging.info(f’ ‘)

Здесь отойдем в сторону и проверим корректность работы модуля time . Сделать это можно в терминале: для этого напишем import time , а затем — time.asctime .

Вернемся к коду. Поскольку функция, которую мы используем, асинхронна, вместо обычного для функций return используем await :

await message.reply(f»Привет, !»)

Ответить пользователю в боте можно несколькими способами — в данном случае используем reply. Выше в переменной MSG мы задали стандартное сообщение: «Программировал ли ты сегодня, <>?». Зададим частоту напоминаний: семь раз каждые семь суток (60х60х24 — количество секунд в одних сутках) с момента отправки команды /start боту от пользователя:

for i in range(7): await asyncio.sleep(60*60*24)

Затем настроим отправку сообщения с указанием имени пользователя в этом же цикле:

await bot.send_message(user_id, MSG.format(user_name))

Третий этап: финал

Переходим к финальной части: в конце скрипта напишем несколько строк. Они могут показаться странными для новичка, но это общепринятая практика, к которой многие программисты прибегают при разработке. В этой строке мы проверяем, равна ли переменная __name__ строке «__main__» . Это условие всегда будет True, если мы запускаем этот файл как python-скрипт через терминал:

if __name__ == ‘__main__’:

Теперь делаем нашего бота доступным в сети:

executor.start_polling(dp)

Сохраняем файл. Запускаем бота в терминале, открытом в папке проекта, с помощью команды python bot.py .

Вернемся в BotFather и перейдем по ссылке, которую получили вместе с токеном. Нажимаем «Начать» — готово, бот, написанный меньше, чем в 30 строк, работает.

Так выглядит его код целиком:

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

Катрин Алимова

Катрин Алимова

Вам может также понравиться.

Скрипты async, defer и оптимизация

Скрипты async, defer и оптимизация

Пишем нашу первую сопрограмму

12 сент. 2023 г.

Пишем нашу первую сопрограмму

Основы блокчейна на примере написания криптовалютного кошелька. Часть 2

21 авг. 2023 г.

Источник: elbrusboot.camp

Рейтинг
( Пока оценок нет )
Загрузка ...