Как бесплатно залить Телеграмм бота на python

Содержание

ptbot — модуль для создания Telegram-ботов. Он умеет отправлять сообщения, редактировать ранее отправленные и реагировать на входящие сообщения от пользователя.

Основан на библиотеке python-telegram-bot , но это урезанная версия для того чтобы начать писать ботов не вникая в сложные концепции. Хорошо подойдёт для начала.

Как начать пользоваться?

Установите библиотеки

Вам понадобится библиотека python-telegram-bot . Установите её в Repl или на своё компьютер, смотря где вы программируете.

Скачайте код

Создайте файл с названием ptbot.py и положите рядом со своей программой.

Затем скопируйте в него этот код.

Создайте бота

Для запуска библиотеки нужно достать пару ключей доступа.

Прежде всего вам нужен API ключ от Telegram-бота. Его можно получить у Отца ботов. Введите команду /newbot в чате с ним и следуйте инструкциям.

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

БЕСПЛАТНО Добавить телеграм бота на сервер Railway на Python

Узнайте свой id в Telegram

Его вам скажет Бот-справочник. Он нужен чтобы подсказать боту как вас найти.

Отправьте первое сообщение

Скопируйте код и поменяйте значения TOKEN и CHAT_ID , запустите программу.

import ptbot TG_TOKEN = ‘958423683:AAEAtJ5Lde5YYfu8GldVhSGCAsxAYbzUIYg’ # подставьте свой ключ API TG_CHAT_ID = ‘228593533’ # подставьте свой ID bot = ptbot.Bot(TG_TOKEN) bot.send_message(TG_CHAT_ID, «Бот запущен»)

От бота в Telegram придёт сообщение:

Проблемы с установкой

При запуске кода вы можете столкнуться с проблемой NewConnectionError. Failed to establish a new connection . В консоли она выглядит так:

WARNING:telegram.vendor.ptb_urllib3.urllib3.connectionpool:Retrying (Retry(total=2, connect=None, read=None, redirect=None)) after connection broken by ‘NewConnectionError(‘: Failed to establish a new connection: [Errno 101] Network is unreachable’)’: /bot. /sendMessage

Такое случается если сервера Telegram заблокированы провайдером. Решается включением VPN. Браузерный VPN здесь не поможет, включите VPN сразу на всю операционную систему. Вот подборка из 10 лучших бесплатных VPN-сервисов.

Что умеет библиотека

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

Отправка сообщения

Вот как можно отправить пользователю сообщение с текстом “Моё сообщение”:

import ptbot bot = ptbot.Bot(«Мой токен») # подставьте свой ключ API bot.send_message(«Мой id чата», «Моё сообщение»)

Не забудьте заменить Мой токен и Мой id чата на свои, подробнее см. Отправьте первое сообщение.

Редактирование сообщения

Метод send_message возвращает id сообщения, только что отправленного пользователю. Зная id сообщения вы можете его редактировать. Как получить id :

message_id = bot.send_message(«Мой id чата», «Моё сообщение») print(‘ID сообщения’, message_id)

И вот как редактировать:

bot.update_message(«Мой id чата», message_id, «Новое сообщение»)

Запуск бота

Метод run_bot нужен для трёх других методов:

  • Создание таймера
  • Создание периодического таймера
  • Ожидание сообщения пользователя

Метод run_bot ничего не возвращает. Он никогда не завершает своей работы. Метод вводит программу в “режим ожидания сообщений” и может работать вечно:

bot = ptbot.Bot(«Мой токен») bot.run_bot() print(«Эта строка кода никогда не запустится»)

Последняя строчка кода никогда не выведет на экран сообщение из-за этого “режима ожидания”.

Всегда вызывайте run_bot в конце своей программы.

Создание таймера

Метод create_timer() создаёт таймер, на несколько секунд. Этот метод не работает без метода run_bot.

Метод требует два аргумента:

  1. Сколько секунд ждать
  2. Функция-коллбэк, которая запустится через это количество секунд.

Самый простой вариант использования:

import ptbot def notify(): print(«Функция запустилась, но через 5 секунд!») bot = ptbot.Bot(«Мой токен») bot.create_timer(5, notify) bot.run_bot()

Когда вы запустите этот код, создастся таймер. Он подождёт 5 секунд и после этого запустит функцию notify : в консоль выведется “Функция запустилась!”.

Создание периодического таймера

Метод create_countdown() ведёт обратный отсчёт, каждую секунду запуская функцию-коллбэк. Этот метод не работает без метода run_bot.

Метод требует 2 аргумента:

  1. Сколько секунд повторять задачу
  2. Функция-коллбэк, которая будет запускаться каждую секунду, пока не выйдет время.

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

import ptbot def notify_progress(secs_left): print(«Осталось секунд:», secs_left) bot = ptbot.Bot(«Мой токен») bot.create_countdown(5, notify_progress) bot.run_bot()

Еще по теме:  5893817808 Телеграмм айди ссылка на аккаунт

Этот код каждую секунду будет печатать Осталось секунд: 5 в течение 5 секунд:

Ожидание сообщения пользователя

Метод reply_on_message() умеет отвечать на сообщения пользователей. Этот метод не работает без метода run_bot.

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

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

import ptbot def reply(chat_id, text): print(«Привет! Пользователь с ID <> написал мне: <>».format(chat_id, text)) bot = ptbot.Bot(«Мой токен») bot.reply_on_message(reply) bot.run_bot()

Если пользователь напишет боту Ты ждешь? , то тот выведет в треминал Привет! Ты написал мне: Ты ждешь? .

Внутри функции def reply(text): можно свободно дописывать любой код. Название у функции тоже можно менять. Вот несколько примеров:

def log_all_messages(chat_id, text): print(«Получил сообщение от пользователя <>: <>».format(chat_id, text)) bot = ptbot.Bot(«Мой токен») bot.reply_on_message(log_all_messages) bot.run_bot()
def say_hello(chat_id, text): message_id = bot.send_message(chat_id, «Привет! Я здесь, я работаю!») print(‘Я отправил сообщение #’, message_id) bot = ptbot.Bot(«Мой токен») bot.reply_on_message(say_hello) bot.run_bot()

Общение между методами

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

import ptbot def reply(chat_id, text): bot.create_timer(5, notify) def notify(): bot.send_message(chat_id, «Прошло 5 секунд!») bot = ptbot.Bot(TOKEN) bot.reply_on_message(reply) bot.run_bot()

Этот код выдаст ошибку, т.к. функция notify не может “украсть” переменную chat_id у функции reply . Но в ptbot есть решение для такого:

import ptbot def reply(chat_id, text): bot.create_timer(5, notify, chat_id=chat_id) def notify(chat_id): bot.send_message(chat_id, «Прошло 5 секунд!») bot = ptbot.Bot(TOKEN) bot.reply_on_message(reply) bot.run_bot()

Изменения произошли в двух местах:

    Функция notify теперь требует аргумент chat_id :

def notify(chat_id):
bot.create_timer(5, notify, chat_id=chat_id)

Так же может делать и другой метод, create_countdown :

import ptbot def reply(chat_id, text): bot.create_countdown(5, notify, chat_id=chat_id) def notify(secs_left, chat_id): bot.send_message(chat_id, «Осталось <> секунд!».format(secs_left)) bot = ptbot.Bot(TOKEN) bot.reply_on_message(reply) bot.run_bot()

Попробуйте бесплатные уроки по Python

Получите крутое код-ревью от практикующих программистов с разбором ошибок и рекомендациями, на что обратить внимание — бесплатно.

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Источник: dvmn.org

Пишем Telegram Bot на Python

Python – язык программирования высокого уровня, который появился сравнительно недавно. Однако его простота и легкий синтаксис уже сделали язык лидером в программировании. Многие предпочитают Python для создания Telegram Bot.

Что требуется для создания бота

  1. Среда программирования Python.
  2. Если у вас установлена версия до 3.4, то следует скачать Gid и Pip. Первое – система управления версиями, второе – система управления пакетами Python. Pip позволяет устанавливать пакеты из командной строки.
  3. Регистрация на GitHub.com
  4. Регистрация на сервере Heroku.com.

Последние два позволят развернуть бот в сети.

Создаем бота

В результате вы получите токен – символьно-числовую последовательность, уникальную для каждого бота Telegram. Именно с помощью этого идентификатора отправляются запросы на сайт https://api.telegram.org.

Каждый запрос имеет вид:

Методы описаны в документации к Telegram Bot API и являются стандартными. Задача программиста при написании бота заключается в создании кода, который получает сообщения от пользователя и отправляет команду боту на выполнение действий. Запрос может выглядеть следующим образом:

Это пример отправки сообщения для клиента Telegram. Обязательно необходимо знать параметр id_chat – это идентификатор чата. Узнать его можно из ответа, который присылает сервер, который имеет вид JSON-строки:

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

Пишем бота для Telegram на Python

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

  1. Скачайте Python с официального сайта https://www.python.org/downloads/
  2. Установите, обязательно указав «Add Python to Path».
  3. Проверьте установку, открыв командную строку и набрав pip. Должен появится справочный материал по pip.

Откройте среду программирования IDLE. Это делается через пуск, в главном меню ищите раздел с установленным Python и выбирайте нужную команду. Отроется окно. Создайте в нем новый файл и вставьте программный код бота Telegram на Python.

import requests
import datetime
#Установка адреса бота
url = https://api.telegram.org/bot507226896:AAGT_fsEO1milOkqbNp-VolQDJ0tGjaPvD7/
#Поиск последнего сообщения из массива чата с пользователем Telegram.
def lastUpdate(dataEnd):
res = dataEnd[‘result’]
totalUpdates = len(res) — 1
return res[totalUpdates]
#Получение идентификатора чата Telegram
def getChatID(update):
chatID = update[‘message’][‘chat’][‘id’]
return chatID
#отправка запроса sendMessage боту
def sendResp(chat, value):
settings =
resp = requests.post(url + ‘sendMessage’, data=settings)
return resp
#Get-запрос на обновление информации к боту. Результат – строка json. Метод .json позволяет развернуть ее в массив
def getUpdatesJson(request):
settings =
response = requests.get(request + ‘getUpdates’, data=settings)
return response.json()
#Главная функция
def main():
chatID = getChatID(lastUpdate(getUpdatesJson(url)))
sendResp(chatID, ‘Ваше сообщение’)
updateID = lastUpdate(getUpdatesJson(url))[‘update_id’]
#Бесконечный цикл, который отправляет запросы боту на получение обновлений
while True:
#Если обновление есть, отправляем сообщение
if updateID == lastUpdate(getUpdatesJson(url))[‘update_id’]:
sendResp(getChatID(lastUpdate(getUpdatesJson(url))), ‘проба’)
updateID += 1
sleep(1)
#Запуск главной функции
if __name__ == ‘__main__’:
main()

Python чувствителен к пробелам и табуляции, поэтому выполните Format-Untabify Region.

Запустите здесь же в среде разработки. В созданном боте Telegram должно появиться сообщение «Ваше сообщение Проба».

Еще по теме:  Как удалить учетную запись Телеграмм с компьютера

Разворачиваем проект на сервере

Самое сложное – заставить наш проект для Telegram работать на сервере. Мы воспользуемся бесплатным сервисом Heroku.

  1. Устанавливаем окружение, набирая pip install pipenv – ее надо набрать в командной строке.
  2. Регистрируемся на Heroku.com
  3. Устанавливаем интерфейс командной строки Heroku (CLI)
    https://devcenter.heroku.com/articles/getting-started-with-python#set-up
  4. В командной строке набираем Heroku и Enter
  5. Вводим адрес электронной почты, с которым регистрировались на сервере, и пароль, придуманный при регистрации
  6. Создаем папку. Ее лучше создать в папке с Python. Для примера создадим папку run
  7. Набираем virtualenv run , чтобы инициализировать в ней virtualenv.
  8. Регистрируемся на github.com и создаем свой репозиторий
  9. Переходим в папку run с помощью cd run
  10. Клонируем репозиторий git командой git clone https:/github.com/ВАШЕ_ИМЯ/ВАШ РЕПОЗИТОРИЙ . ВАШЕ_ИМЯ – имя пользователя на github
  11. Скопируйте скрипт в папку созданного репозитория (она появится в run)
  12. Зайдите в папку run/scripts , чтобы запустить файл activate.bat. Если он сработал успешно, то перед адресом в командной строке будет стоять название вашей папки. Например,
  13. Перейдем в папку run , затем в папку репозитория с помощью команды cd
  14. Установим модуль requests. Наберем pip install requests
  15. Чтобы создать зависимость введите pip freeze > requirements.txt
  16. В папке run создайте файл Procfile или Procfile.windows (для Windows) и сохраните в нем строку web: python bot.py, где bot.py – имя вашего файла с программой для бота
  17. В папке репозитория создайте файл __init__.py. Он будет пустым

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

Вы увидите сообщение об инициализации пустого репозитория.

Внимание, после add пробел и точка! Добавляет файлы в локальный депозиторий.

Выполнение команды занимает некоторое время, необходимо подождать.

git commit -m ‘short message that describe changes to commit’
Фиксирует изменения в репозитории.
git push -u https://github.com/ИМЯ_ПОЛЬЗОВАТЕЛЯ/ИМЯ_РЕПОЗИТОРИЯ
Позволит развернуть проект на github.

Затем выполните команды:

heroku create имя проекта

В результате вы получите адрес вашего проекта, например, runbot.herokuapp.com.

git push heroku master

Ждем окончания процесса компиляции проекта.

heroku ps:scale web=1
heroku open

Последняя команда откроет ваше приложение на сервере. Бот на Питоне для Телеграмма начнет свою работу.

На сайте с документацией можно посмотреть другие Telegram Bot примеры на Python.

Источник: telegramzy.ru

Создание бота в Телеграм Питон 3: пример программирования, как сделать кнопки для чата и написать код

FAQ

Автор fast12v0_steleg На чтение 7 мин Просмотров 200 Опубликовано 14.01.2020

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

Преимуществом сервиса является возможность создавать и использовать ботов. Программировать их можно на любом языке, но самым распространенным выбором сегодня стал Питон. В статье подробно рассмотрим, как сделать python telegram bot.

Немного теории об API

Создание Python Telegram Bot с нуля

Application Programming Interface – интерфейс, при помощи которого разработчик способен формировать приложения. Инструкция по использованию представлена на сайте stelegram.ru.

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

Изначально api использовался для передачи информации и приказов между разными переменными программами. Сегодня он дает возможность получить доступ к ресурсам на другом сервере.

Его применение имеет такие достоинства:

  1. Доступность партнерских программ.
  2. Работа с пре-форматированными ссылками, загружающимися одновременно с ID.
  3. Возможность предоставлять максимально точные и актуальные данные в любой момент времени.
  4. Получение ответных данных в JSON или XML форматах.
  1. Публичными. К ним легко получить доступ.
  2. Приватными. Может использоваться исключительно внутри одной компании. Если у нее разработано много продуктов, то интерфейс позволяет разным программам взаимодействовать между собой.

К основным задачам Application Programming Interface относят:

  • помощь в написании кодов;
  • преобразование сложных задач в простые.

Инструкция по созданию телеграм-бот на Python

Существует несколько вариантов получения собственного робота:

  1. Написать его самостоятельно. Для этого можно использовать различные языки программирования. Одним из наиболее понятных и востребованных на данный момент является Питон. Такой способ хоть и трудоемкий, но при этом позволяет получить универсальное решение.
  2. Воспользоваться услугами конструктора. Но здесь можно столкнуться с ограниченным функционалом, которого не всегда бывает достаточно, чтобы воплотить то, что вы хотите.
  3. Покупка. Однако, нужно понимать, что в основном, чтобы написать telebot, используется язык python. А он считается настолько легким, что применить его могут даже новички, потому лучше попробовать самому.
Еще по теме:  Можно ли создать ТГ без номера телефона

Известно два класса ботов, способных самообучаться и работать по определенным правилам:

Как создать Python Telegram Bot с нуля

  1. Первый вид менее распространен. Робот обучен определенным правилам, основываясь на которые он отвечает на поставленные вопросы. Bot занимается регулярной обработкой простых запросы, а очень сложные у него могут вызвать проблемы.
  2. Самообучающийся робот более эффективен. Он бывает следующих видов:
    • поисковым – использует для ответа реплики, прописанные в базе библиотеки. В зависимости от контекста разговора он выбирает text из списка;
    • генеративным – способен сам создавать сообщения на основе изученных слов в запросе.

    Свой телеграм-бот на Питон можно сделать самостоятельно. Рассмотрим подробную инструкцию.

    Регистрация бота

    Дополнительно укажите name. В ответ он пришлет ссылку на документацию (documentation) и токен. Их желательно сразу сохранить, так как они будут единственным ключом к авторизации при взаимодействии с помощником.

    Установка

    Для начала проводится установка программы.

    Есть несколько способов:

    1. Скачать с сайта, нажав значение install.
    2. Те, кто пользуется ОС Linux, имеют возможность запустить ее из менеджера пакетов.
    3. Владельцы macOS должны поставить приложение Homebrew.
    4. Воспользоваться интерпритатором программы, позволяющей работать онлайн.
    5. При работе на мобильном устройстве представлена среда программирования Питон.

    После загрузки следует установить pip – систему управления пакетами. Важно использовать последние версии. При необходимости можно провести ее обновление.

    Написание кода

    За создание и функционирование робота отвечает модуль python telegram bot api. Для этого нужно послать следующее: pip install pyTelegramBotAPI.

    Писать код получится где угодно. Это может быть вордовский файл или блокнот. Но гораздо эффективнее это делать в умной среде. Здесь автоматически будут подсвечиваться возможные ошибки в проекте.

    Создание кода начинаем с подключения телебота. Здесь понадобится сохраненный раньше токен. Первая строка будет выглядеть следующим образом: message: TOKEN=ключ, который прислал бот.

    Во второй строке создает объект, который обзываем bot. В аргументах прописывается код аутентификации.

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

    Протестировать его можно, выполнив команду python полный_ путь_ к_ файлу/test.py. робот должен отвечать.

    Настройка и запуск бота

    Настройка Python Telegram Bot

    Для того, чтобы помощник мог работать, нужно:

    1. Войти в мессенджер.
    2. Открыть аккаунт робота.
    3. В новом диалоговом окне кликнуть на изображение с тремя точками вверху.
    4. Дальше перейти к пункту Настройки.

    Чтобы запустить робота, нужно:

    1. В строке поиска на клавиатуре руками ввести name помощника и начать диалог с ним.
    2. Добавить его к каналу при помощи кнопки «Добавить нового участника».
    3. Осталось из списка выбрать нужный вариант и кликнуть элемент «Invite».

    Обработчики команд

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

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

    Обработчики кнопок

    В основе программы telegram api python также будет исходник клавиатуры. При подготовке к работе KeyboardButton обязательным параметром является текст (text), который юзер сможет переслать после нажатия на данную клавишу.

    При написании кода используются различные методы:

    1. Add – количество кнопок любое. При этом они выстраиваются в ряд. Если установленная изначально ширина уже достигнута, импортируем их.
    2. Row – число клавиш также не ограничено, но все они расположены в одной строке.
    3. Insert – напоминает первый способ, но иконки добавляются к последнему ряду.

    Встроенный режим

    Это один вид взаимодействия с ботами. С его помощью они получили еще больше возможностей. Такие роботы способны выполнять любые задачи. Например, из examples: отправка text из сайта в чат, размещение гифки или картинки.

    Генератор для диалогового бота

    Python Telegram Bot с нуля

    Используя конструкцию yield from, роботы создают друг для друга курс на выполнение определенной задачи. Для этого применяется модуль itertools.

    Генераторы для python telegram bot proxy являются отличным инструментом. Они дают возможность упростить код и продолжить беседу с нужного момента.

    Развертывание бота на сервере

    Это завершающий этап создания помощника в Тelegram. Для этого не нужно приобретать дорогую аппаратуру. Можно воспользоваться облачными прокси ресурсами с протоколом mtproto, где предлагают разместить любое приложение бесплатно.

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

    Из-за блокировки мессенджера в России, им нельзя воспользоваться. Но можно пойти в обход запрету, установив VPN.

    Выводы

    Python – программа для написания скриптов в Телеграм с нуля, которые станут отличным помощником владельцу канала. Они умеют автопостить, форматировать материал, ведут статистику, создают кнопки на русском или другом языке и прочее.

    Детальную инструкцию увидите на видео:

    Источник: stelegram.ru

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