Рассказываем, как с помощью бессерверных вычислений сделать своего чат-бота в Telegram с нуля. Он сможет отвечать на запросы простыми сообщениями и отправлять картинки. Подойдет для организации процессов разработки, поддержки и продаж.
94 237 просмотров
Telegram api — как работать и для чего это нужно
Часто в интернете вы встречаете непонятные сочетания английских символов, о которых все говорят в положительном ключе. К примеру, как можно понять рассуждения о каком-то telegram bot api, да еще и понимать, что значит фраза: «Зачем его написали на c#, лучше бы на delphi?». Впрочем, данная статья решит ваши проблемы и поможет вам быть в теме: не углубляясь в программистские дебри, мы сейчас все объясним.
План статьи:
- Что такое telegram api
- Для чего нужен телеграмм API
- Какой язык скриптов использует мессенджер
- Что такое json и как он связан с API
- Выводы
- Видеообзор
Что такое telegram api
Для начала мы поговорим о том, что вообще скрывается под этой аббревиатурой. Чтобы вам было понятнее, сначала мы углубимся в истоки истории программирования. Когда-то давным-давно код писался полностью с нуля. То есть, для того, чтобы программа просто показала пользователю какое-то слово, разработчик должен был вручную написать это на машинном языке, используя только 0 и 1.
Что такое API?
Конечно, всегда так продолжаться не могло, поэтому однажды было решено автоматизировать весь этот процесс, создав библиотеки со встроенным набором функций. То есть, для вывода «Привет» разработчик должен был просто написать «cout
Осознав, что это довольно удобно, разработчики ввели понятие «API» ― встроенного интерфейса, позволяющего посылать операционной системе, компьютеру или еще чему-то команды на понятном для него языке. API автоматизировали создание игр или написание офисных программ, делая, к примеру, наложение текстуры на объект более простым.
Примером API может служить всем известный 1С
Для чего нужен телеграмм API
Теперь, когда вы поняли саму суть этого, перейдем к более конкретному примеру. А именно ― к интерфейсу ботов для телеграмм.
Источник: nashkomp.ru
Что такое Client API и почему он лучше чем Bot API
В Telegram вы можете использовать как Client API, так и Bot API. Client API позволяет создавать «юзерботов». Юзерботы — это специальные аккаунты, которые помечены как пользователи, но могут выполнять автоматизированные функции. Помимо этого можно использовать и вход по токену, но об этом как-нибудь в другой статье.
Фото из сети
Использование
Для использования и создания я выбрал библиотеку Pyrogram . Она имеет понятную документацию и позволяет легко создавать юзерботов . Установку библиотеки производим простой командой в консоли:
API простыми словами. Что такое API? | 2022
pip3 install pyrogram
Создаем подключение
Чтобы получить специальный файл — сессию , нужно выполнить определенный код:
from pyrogram import Client
app = Client(«Session», api_id=Ваш api_id, api_hash=»Ваш api_hash»)
После выполнения этого кода будет создан файл-сессия у вас запросят номер телефона и код, который придет.
Спрашивается, откуда взять api_id и api_hash . Надо зайти в Telegram, зарегистрироваться, войти под своим аккаунтов и забрать аpi_id и api_hash .
Плюсы Client API
При использовании Client API мы можем сделать то, что не могут делать обычные боты или пользователи:
- Мы можем видеть сообщения от ботов (в случае регистрации через токен)
- Быстрое удаление сообщений
- Способность видеть VIA-сообщения
- Возможность творить со своим аккаунтов то, что позволяет код. В любое время
- Более быстрая обработка сообщений
Пишем код
Для примера я решил создать простого бота, который будет удалять сообщения через цикл. Напишем код, который будет отвечать на команду /start :
def start(client, message):
bot.send_message(message.chat.id, ‘Привет! Данный бот создан для очистки групп от сообщений’)
def clean_down(chat, message):
begin_timer = time.time()
start = message.reply_to_message.message_id
chat = message.chat.id
end = message.message_id
pending = int(end) — int(start)
bot.send_message(message.chat.id, ‘Чистка была запущена! Найдено сообщений: <>’.format(pending) + ‘. nВ среднем 500 сообщений удаляются за минуту’, parse_mode=’HTML’)
bot.delete_messages(chat, i)
middle_timer = time.time()
end_timer = int(middle_timer) — int(begin_timer)
bot.delete_messages(chat, i)
bot.delete_messages(chat, i + 1)
bot.delete_messages(chat, i + 2)
bot.send_message(chat, ‘Чистка была успешно завершена! Удалено сообщений: <>’.format(pending) + ‘nЧистка длилась (секунд): <>’.format(end_timer) , parse_mode=’HTML’)
except Exception as e:
bot.send_message(message.chat.id, str(e))
Как видите, удаление было произведено с помощью обычного цикла. Удаляется реплейнутое сообщение, и всё, что после него.
Для удобства я опубликовал полный код на Pastebin
Если тебе понравилась статья, обязательно подпишись и поставь лайк. Остались вопросы? Смело спрашивайте о них в комментариях– обязательно отвечу :). Также у меня есть Telegram-канал — подписывайтесь ;).
Источник: dzen.ru