Запустить Телеграмм бота через хостинг beget

После регистрации Телеграм бота в BotFather, необходимо задуматься над тем, где будет размещено «сердце» бота — здесь нам понадобятся услуги хостинг-провайдера.

Основные требования к хостингу бота — это его доступность со стороны Telegram-серверов и SSL-сертификат для домена. Всё остальное уже второстепенно. В качестве основного языка разработки чат-ботов я использую PHP и способ взаимодействия с Telegram через Webhooks (вебхуки).

За несколько лет активной разработки ботов пришел к «своему» хостингу, который оказался лично для меня самым удобным и надежным — Beget. Именно этот хостинг рекомендую использовать и Вам, чтобы избежать дополнительных сложностей.

Теперь покажу весь процесс регистрации нового аккаунта на Beget для последующего размещения на нем скрипта бота.

Выбор тарифа и регистрация

1. Переходим на вкладку выбора тарифов Beget. Для одного средненагруженного бота вполне достаточно будет тарифа «Blog», несколько лучше — «Start» (на нем можно будет разместить больше ботов, используя разные домены). Нажимаем «Попробовать бесплатно». На момент написания статьи компания предоставляет всем новичкам 30 дней бесплатного хостинга.

За 10 минут — выгрузка (деплой) телеграм-бота на хостинг и его запуск.

Тарифы виртуального хостинга Beget

2. Заполните обязательные поля формы: ФИО, мобильный телефон, email, а также придумайте логин для входа в хостинг-панель. Нажмите «Регистрация», после чего подтвердите с помощью СМС номер телефона.

Окно ввода обязательных реквизитов при регистрации хостинга

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

Уведомление о ручной модерации

4. Когда проверка будет завершена, Вы получите на почту письмо с данными для входа в панель управления хостингом.

Письмо с данными для доступа к панели управления хостингом

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

Панель управления хостингом Бегет

Регистрация домена

Далее давайте вместе по шагам разберем процесс регистрации домена для Телеграм бота. Для размещения чат-бота понадобится домен второго уровня, стандартный бесплатный домен формата domain.beget.tech не подойдет, так как на него нельзя установить обязательный SSL-сертификат.

1. Переходим в раздел «Домены и поддомены».

Расположение пункта Домены и поддомены

2. Переходим на вкладку «Регистрация доменов».

Выбор вкладки Регистрация доменом

3. В поле «Имя домена» вводим любое понравившееся свободное доменное имя, например tg-test-bot.ru и нажимаем Продолжить. Для размещения бота не важен домен, так как в классическом понимании пользователи бота не будут видеть домен, он будет использоваться только на уровне взаимодействия с серверами Telegram. Единственное исключение — это доступ к панели управления ботом, если она будет размещена на том же домене или личный кабинет пользователей.

Еще по теме:  Игры в Телеграмме в чате как

Выбор доменного имени для регистрации

4. Заполните все необходимые для регистрации домена персональные данные и подтвердите форму.

Заполнение персональных данных при регистрации домена

5. На следующей странице сверьте регистрационные данные и если всё верно, активируйте пункт «Защитить сайт бесплатным SSL-сертификатом…» (он является обязательным для работы с Telegram Bot API) и нажмите Зарегистрировать.

Подтверждение регистрационных данных домена

6. Далее Вы будете перенаправлены на страницу оплаты, где будет необходимо выбрать способ оплаты и совершить платеж. В случае успеха увидите сообщение об этом. Нажимаем «Продолжить».

Уведомление об успешном платеже

7. После можно будет на вкладке Мои домены увидеть только что зарегистрированный домен. У меня появилось сразу два домена, так как на момент написания статьи проходит акция «Домен .store в подарок».

Список зарегистрированных доменов

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

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

Как создать простого бота для Телеграм на PHP

Создадим простого бота для мессенджера Telegram с использованием PHP. Данная статья создана исключительно в поучительных целях и не претендует на полноту или правильность подхода. Весь код бота очень простой и может быть освоен начинающими PHP-разработчиками.

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

Шаг 1: подготовка

Что нам понадобится:

  1. Веб-сервер с работающим PHP 5.6 и выше — не локальный веб-сервер, а веб-сервер на хостинге, что важно! Так как сервисы Telegram должны будут видеть вашего бота по внешней URL-ссылке;
  2. Веб-сервер должен работать через https — то есть на веб-сервере должен быть установлен давно (больше суток назад) зарегистрированный SSL-сертификат. Достаточно будет бесплатного Let’s Encrypt SSL-сертификата;
  3. Доступ к файлам на этом сервере, конечно же — иначе как мы что-то сделаем;
  4. Установленная кодовая страница UTF-8 на сервере по-умолчанию или добавьте в файл .htacces в корне сайта строку AddDefaultCharset utf-8;
  5. Аккаунт в мессенджере Telegram;

Шаг 2. Регистрация вашего бота в Телеграм

Да, да. Бот еще даже не создан, но перед этим его уже нужно зарегистрировать, чтобы получить уникальный идентификатор, чтобы в дальнейшем обращаться к BOT API Telegram.

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

Шаг 3. Создаем код бота

Будем делать прямо в корне сервера (не самый верный подход, можно создать папку bot, а в ней уже файл verysimple_bot.php). Для этого на сервере создадим файл verysimple_bot.php в котором и будет весь код бота. Не забываем, что весь код в файле verysimple_bot.php должен быть в кодировке UTF-8.

Для редактирования файлов кода и заброске их на сервер удобно использовать FAR Manager — в нем есть и подсветка синтаксиса и FTP/SFTP клиент для копирования файла на сервер.

Делаем заготовку бота, который сможет выдавать список команд и информацию о нас:

Шаг 4. Делаем WebHook и конкретизируем код бота

    Чтобы все заработало, нужно сособщить сервису Телеграм, что наш бот лежит там-то — используй его код для такого-то бота verysimple_bot.
    Для этого нужно сформировать ссылку, которая называется WebHook и её мы и сообщим телеграму:

https://api.telegram.org/bot 1234567899:AAKJhkkjhkjhKhKhjkhkhk_kJhgkjhJhgjghjhG /setWebhook?url= https://www.mysite.ru/verysimple_bot.php

Не забываем где красное заменяем на свои данные!
Как сформируете эту ссылку — вставьте её в браузер и запустите!

  1. Пользователь в диалоге с ботом пишет запрос, например /help
  2. Telegram Bot API через WebHook, что мы установили, берет этот запрос и отправляет в код бота
  3. Мы в боте получаем его, анализируем, видим например, /help и через Telegram Bot API и
    функцию message_to_telegram отправляем ответ — который появлется в диалоге как ответ бота.

Шаг 5. Добавим возможность делать заявки через бота

Заявкой будем считать сообщение или вопрос, которое можно будет отправить через нашего бота какому-то пользователю, назовем его менеджер компании. То есть нам нужно организовать такую цепочку:

  1. Пользователь запрашивает у бота «Оставить заявку», например набрав команду /order
  2. Бот входит в режим ожидания текста Заявки
  3. Если пользователь ввел текст и нажал Enter, только тогда отослать это сообщение заранее запрограммированному по менеджеру компании.

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

  1. Помните наш файл message.txt — вот он сейчас понадобится
  2. Присоединяемся к нашему боту тем пользователем, кому будем слать заявки (менеджер компании)
  3. Сразу открываем файл message.txt и смотрим блок: [chat]

$order_chat_id = ‘123456789’; //chat_id менеджера компании для заявок $bot_state = »; // состояние бота, по-умолчанию пустое

Сохраняем состояние бота для каждого пользователя

Далее, важный момент: у нас любой присоединившийся пользователь сможет сделать заявку, и чтобы бот понимал, что находится в режиме ввода заявки именно с этим пользователем, мы должны сохранять и считывать состояния бота для каждого пользователя отдельно!

Напишем две функции: set_bot_state($chat_id, $data) и get_bot_state($chat_id) — которые сохраняют текущее состояние бота и получают соответсвенно, для нужного пользователя. Сохранять будем в подпапке /users на сервере, которую создадим предварительно не забыв дать права на запись. Состояния будут хранится все в тех же текстовых файлах с именами chat_id пользователей и содержать последнюю команду:

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

// сохранить состояние бота для пользователя function set_bot_state ($chat_id, $data) < file_put_contents(__DIR__ . ‘/users/’.$chat_id.’.txt’, $data); >// получить текущее состояние бота для пользователя function get_bot_state ($chat_id) < if (file_exists(__DIR__ . ‘/users/’.$chat_id.’.txt’)) < $data = file_get_contents(__DIR__ . ‘/users/’.$chat_id.’.txt’); return $data; >else < return »; >>

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

Шаг 6. Регистрация команд бота

Вот и все — простой бот работает! Всем спасибо, если дочитали и что-то заработало.

Николай Комарков

Источник: www.novelsite.ru

Загрузка телеграм бота на сервер. Подробные шаги загрузки файла *.py на бесплатный сервер PythonAnywhere

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

Существует множество бесплатных виртуальных серверов для тестирования ботов. Вот некоторые из них:

  1. PythonAnywhere — облачный хостинг для приложений Python. PythonAnywhere предоставляет бесплатный тарифный план, который позволяет развернуть одно приложение Python.
  2. Kamatera — есть тестовый период на месяц. Отличное решение для начального теста, а после пролноценной работы.
  3. Heroku — платформа для развертывания и хостинга приложений, которая предоставляет бесплатный тарифный план. Он позволяет развернуть приложение на серверах Heroku и бесплатно запустить до 5 приложений.
  4. Amazon Web Services (AWS) — облачная платформа, которая предоставляет бесплатный тарифный план, включая Amazon EC2 (виртуальные серверы), Amazon S3 (хранилище данных) и другие сервисы.
  5. Google Cloud Platform (GCP) — облачная платформа, которая также предоставляет бесплатный тарифный план, включая Google Compute Engine (виртуальные серверы) и другие сервисы.
  6. Microsoft Azure — облачная платформа, которая также предоставляет бесплатный тарифный план, включая виртуальные машины и другие сервисы.

PythonAnywhere

Для первого тестирования своего бота я выбрала PythonAnywhere. Регистрация интуитивно понятная.
Примечание: в бесплатном тарифе очень мало процесорных минут, так что этот тариф больше подходит для тестов, а не для полноценной работы. Для полноценной работа я рекомендую платные сервера https://zomro.com/

ШАГ 1. Начало работы. Установка виртуальной среды

1. Перейдите в Dashboard и запустите консоль. Для этого нажимаем New Console — $ Bash

2. Выполните следующую команду в консоли, чтобы установить инструмент virtualenv (инструмент для создания виртуальной среды):

Источник: stepfor.top

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