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

Еще по теме:  Как записывать телефонный разговор через Телеграм на Айфон

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

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