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

После появления в консоле значка «$», можете устанавливать библиотеки, которые необходимы для вашего бота, Python уже установлен изначально. В моём случае — это только telegrambotapi.

pip3 install telegrambotapi —user

Запускаем нужный нам файл, в моём случае — это «main.py» на третьем python.

Готово! Бот запущен!

Небольшое замечание: придётся перезапускать его примерно 1-2 раза в сутки.

Вот и все! Надеюсь, кому-то будет полезно!

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

Пишем Telegram Bot на Python

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

РАЗМЕЩАЕМ БОТА НА СЕРВЕРЕ | Телеграм боты ч. 5

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

  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

Бессерверный бот Telegram

Get in umbrella

Этот чат-бот Telegram построен на случай чрезвычайной ситуации — умеет отправлять SOS спасателям, если вдруг, например, кто-то окажется без зонта в проливной дождь. Он написан на Python с использованием AWS Lambda, Zappa и Flask.

AWS Lambda — это сервис вычислений, запускающий ваш код при определенных событиях и автоматически управляющий вашими вычислительными ресурсами.
Flask — фреймворк для создания веб-приложений на языке программирования Python, использующий набор инструментов Werkzeug, а также шаблонизатор Jinja2.

Проблема
Чат-бот решит проблему, если неожиданно вы попали под дождь или в еще какую неприятность. Любой может попросить зонтик. Бот спрашивает, где находится человек, сколько зонтов ему или ей может понадобиться, и когда они хотели бы, чтобы их «спасли».

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

Так можно стать спасателем

Спасателям приходят сообщения, когда кто-то рядом с ними оказался в «беде». Если человек решил помочь, то ему всего лишь нужно нажать кнопку.

При построении бота есть небольшие хитрости, которые помогут сделать его быстрее.

Что необходимо

AWS Lambda
Вместо запуска сервера 24/7 вы можете размещать функции в Lambda, чтобы сервер работал только в течение жизненного цикла запроса. Это прекрасно подойдёт для большого числа бесплатных запросов.

Zappa
Программа автоматизирует действия, необходимые для получения локального кода Python на AWS Lambda. Она также настраивает API-интерфейс Amazon, поэтому у вас будет хорошая конечная точка HTTPS для размещения функций вашего чат-бота

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

Данные инструменты помогут избежать большой головной боли при создании бота (например, не надо будет арендовать сервер, настраивать его для HTTPS, выяснять, как сделать неблокирующий сервер).

Далее показано, как использовать эти инструменты для разработки чат-бота.

Итак, как сделать чат-бота без знания бота API Telegram, но со знанием работы Flask и Python. Если что-то покажется вам слишком простым, не стесняйтесь и пропустите ненужное.

Построение Telegram-бота

Botfather

Подсказка: где-нибудь сохраните токен, он понадобится в ближайшее время!

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

Настройка сервера разработки с помощью Flask

Я работал с pipenv для управления зависимостями Python моего проекта. Попробуйте, если вы все ещё используете pip и virtualenv. По ссылке найдёте инструкции по установке.проекта.

Далее установим Flask. Также будем использовать потрясающую библиотеку requests. В командной строке введите:

  • pipenv install flask
  • pipenv install requests

После установки создадим базовый сервер для тестирования нашего бота. Скопируйте следующий текст в файл с именем server.py.

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

Flask

Скопировать фрейм можно по ссылке.

Давайте разберемся, как работает API Telegram. Во-первых, когда кто-то посылает вашему боту сообщение, это сообщение отправляется на серверы Telegram. Затем Telegram отправляет это сообщение к тому, что мы определили как web-hook.

Flask

Скопировать фрейм можно по ссылке.

Функция process_update()и декоратор: когда кто-кто-нибудь будет отправлять в POST — домен http://127.0.0.1:5000/, мы будем извлекаем из него JSON — данные. Если это обычное текстовое сообщение, оно будет иметь ключ message в JSON. Проверяем, и если это нормальное сообщение, мы отвечаем с помощью process_message(update).

Flask

Функция process_message()создает полезную нагрузку, которую API Telegram ожидает как ответ на сообщение. Нужно указать текст ответа в data[«text»]и чат, на который мы отвечаем data[«chat_id»] .

Наконец, мы отправляем запрос на публикацию с этой полезной нагрузкой в Telegram API sendMessage методом.

Пришло время запускать сервер. Теперь в командной строке введите:

Это дает нам доступ к Flask. Теперь нужно запустить сервер. Введите в командной строке:

export FLASK_APP=server.py
flask run

У нас есть запущенный сервер.Если нет параметра по умолчанию, запустите ihttp://127.0.0.1:5000/.

Подробнее читайте в документации Flask и quick-start.

Но это выполняется локально, и API Telegram не может отправлять свои POST-запросы локальному URL-адресу. Следовательно, мы будем использовать ngrok, чтобы сделать локальный сервер доступным в интернет.

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

./ngrok http 5000

В командной строке вы увидите нечто похожее. Теперь любой сервер, на котором вы работаете на localhost: 5000, отображается по следующим URL-адресам.

Flask

Подсказка: скопируйте https-url, он вам скоро понадобится. Далее снова будем использовать API Telegram, чтобы установить наш web-hook.

Создайте файл с именем webhook.py со следующим содержимым:

Flask

Ссылка на фрейм.

Pro tip: Не забудьте заменить и your-https-url!

pprint позволит напечатать хорошо отформатированные данные JSON. Отправляем URL-адрес web-hook в виде запроса POST на setWebhook API Telegram. Теперь запускайте следующие строки в командной строке:

run the following lines in your command prompt:pipenv install pprint
python webhook.py

Вы увидите 200 и JSON с ‘ok».

Проверьте свой чатбот
Теперь, когда настройка сервера закончилась, перейдите к своему боту и поздоровайтесь. Если сделали корректно. Подойдите к своему боту в Telegram и поздоровайтесь! Если все настроено правильно, вы увидите ответ — I can hear you!

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

Метки поста: Telegram

Создатель и автор сайта gruzdevv.ru. Практикующий маркетолог (PPC, SEO, SMM). Более 150 реализованных контентных сайтов. Онлайн-консультации и аудит проектов. Ссылка на приватный Телеграм-канал:

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

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