хостинг для телеграм бота php
Регистрируем хостинг для работы с Telegram Bots API
Для работы бота нужен хороший хостинг и SSL-сертификат. Поэтому нужно найти где будут хоститься скрипты-обработчики запросов Telegram Bot API.
Выбирая хостинг, я просмотрел кучу сайтов с обзорами и отзывами. Главным критерием была надежность и хорошая служба поддержки. Нельзя чтобы сайт зависал, или вообще не отзывался на действия пользователя. А скорость работы службы поддержки и ее компетенция поможет вам решить любые вопросы, связанные с работой хостинга. Практически везде в лидерах был TimeWeb. На нем и остановился.
Теперь все по порядку, как и что я делал.
1. Зашел на сайт TimeWeb, выбрал вкладку Хостинг.
2. Выбрал тариф Year+, при оплате за год месяц получается 99 рублей
3. Заполнил обязательные поля: ФИО, E-mail, Условия оферты. Также указал логин, если его не указать, то система Вам создаст автоматически, например, «Cnn1339».
4. После нажатия кнопки «Заказать» ко мне на почту пришло письмо с данными для авторизации, и автоматически переадресовало на страницу управления аккаунта. В разделе «Оплата услуг» оплатил год хостинга, это было быстро и удобно.
5. Далее я зашел в раздел «Домены и поддомены».
6. Выбрал услугу «Зарегистрировать домен».
8. В открывшемся окне нажал кнопку «Добавить администратора». Заполнил все необходимые регистрационные данные, на этом шаге желательно указывать реальные данные, потому что в спорной ситуации нужно будет подтвердить свое право на домен. Далее нажал кнопку «Зарегистрировать домен». После этой процедуры к вам на указанные адрес администратора домена будут приходить письма со статусом регистрации домена.
9. Теперь необходимо зайти в раздел «Сайты», там вы увидите созданный сайт «Основной сайт», я его удалил и добавил новый сайт под один из своих проектов.
10. Указываем название и комментарий.
11. После создания сайта необходимо привязать к нему наш зарегистрированный домен, он хоть пока еще не прошел процедуру регистрации, и скорее всего будет доступен для работы через 4-6 часов, но мы его все равно можем уже привязать к нашему сайту.
12. Для этого просто в отрывшемся окне выбираем наш домен. Если вы хотите уже сразу посмотреть, что будет выводиться то можете привязать технический домен, он в списке будет доступен, для него просто повторите процедуру. И тогда будут привязаны 2 домена.
13. Потом мы заходим в раздел «Файловый менеджер» выбираем свой сайт, двойным кликом заходим в него, видим там директорию «public_html» в ней лежат автоматически сгенерированные файлы нашего сайта, по умолчанию это директория «cgi-bin» и файл index.htm.
14. После того как домен будет зарегистрирован, мы можем заказать SSL сертификат. Для этого выбираем в меню «Дополнительные услуги»
15. Далее услугу «SSL-сертификаты»
16. Среди предлагаемых сертификатов мне нравиться «SSL Let`s Encrypt», потому что он бесплатный. Его предоставляют на 3 месяца, и в случае если вы его не отзываете его продлевают еще на 3 месяца и так далее. Нажимаете кнопку «Заказать» и примерно в течении 30 минут его вам изготовят, установят и настроят.
Ну, вот осталось только создать бота у @BotFather и после этого можно начинать разрабатывать Telegram Bot.
Комментарии
Авторизуйтесь через Telegram, чтобы оставить комментарий.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.
Внимание!
Убедитесь, что эта страница открыта в браузере, а не в приложении Telegram. В противном случае авторизация пройдет только в приложении Telegram.
bot php
Очень часто в интернете на форумах люди задают вопрос, о том, как создать и установить бот для телеграм. В данной статье мы представим вашему вниманию все основные этапы этой процедуры.
Требования к хостингу
Выбирая хостинг для telegram, вы должны основываться на двух главных критериях – отличная служба поддержки и надежность. Большую проблему вам создаст портал, если он постоянно будет подвисать. Также скорость службы технической поддержки должна быть высокой, иначе вам не удастся быстро решить возникшие проблемы. Мы, например, остановились на Вебача для создания бота. А о том, как все правильно сделать, мы расскажем по порядку в следующих пунктах.
Создание бота
Создание бота для telegram является первым шагом для диалогового telegram в php. Для осуществления процедуры вам потребуется выполнить несколько достаточно простых операций:
После удачного создания telegram bot sdk на php вам будет отправлено сообщение с токеном, его необходимо сохранить, поскольку в токене прописан код доступа к боту.
Настройка домена
Настройка домена для telegram bot на php является одной из наиболее важных задач в этой процедуре. Рассмотрим, как выполнить настройку telegram bot для php на примере вебачи.
Обратите внимание! На этом домене в адресе нет комбинации «https», однако это не значит, что нам для размещения не понадобиться сертификат, поскольку без него bot невозможно разместить.
Для этих целей можно применить «cloudflare», который выдает такой сертификат. Нам потребуется перенести туда домен, сделать это можно достаточно быстро и без финансовых затрат. Для этого осуществите следующие действия:
Важно! Если на экране возникла ошибка: «HTTP Version Not Supported», то необходимо выполнить всю процедуру для приложения телеграм с самого начала для устранения оплошностей. В противном случае вы не сможете запустить бот телеграм для php.
Также после выполнения всех представленных шагов вам потребуется написать код бота. Сделать это можно воспользовавшись «SetWebhook» и библиотекой. Открыв в браузере нужную ссылку, вам системой будет отправлен ответ, что webhook для telegram bot в php установлен и теперь вы сможете получать запросы от интернет-пользователей. А как настроит эти запросы мы расскажем в следующем пункте.
Команды php для обработки сообщений и тестирование бота
Большинство инструкций в интернете для приложения телеграм предлагают для таких целей способы, в которых после каждой команды вам потребуется вбивать текст сообщения, а это не особенно удобно.
Поэтому более рационально сделать так, чтобы bot сам запоминал и писал команды, которые вы записали для telegram в php.
Для этого перед отправкой сообщений вам потребуется разместить их в хранилище, а перед приемом проверять, в наличии ли данные хранилища:
Если шаги осуществить правильно, то работать с приложением будет намного проще, интерактивней и удобней.
В данной статье мы изложили основные этапы установки приложения для телеграм в php. Вам остается их внимательно изучить и произвести действия согласно инструкции.
Телеграм-бот на сервере: загрузка, настройка и запуск
Автор статьи — Денис, специалист службы технической поддержки хостинга в ООО «REG.RU».
В предыдущей статье мы рассказали, как создать простого бота на Node.js, однако он работал только на локальном компьютере. Эта статья о том, как загрузить бота на сервер, запустить его и проверить, что всё работает.
Шаг 1. Выбрать хостинг
Как правило, на shared-хостинге отсутствует поддержка Node.js, поэтому нам понадобится как минимум виртуальный сервер. Существуют сервисы, предлагающие VPS бесплатно, но с заметными ограничениями: например на количество трафика или нагрузку на сервер. Можно выделить несколько известных зарубежных провайдеров (но стоит отметить, что для новичков они могут оказаться сложными):
Преимущество платных VPS в более высоких лимитах или их отсутствии, а также в гарантии стабильной работы сервера. Вместе с этим вы получаете активную поддержку и всегда можете рассчитывать на помощь хостинг-провайдера, если возникнут проблемы.
Для примера мы закажем облачный VPS в REG.RU, вы можете воспользоваться любым VPS-хостингом. Он удобен для тестового проекта тем, что оплата почасовая. При выборе тарифа мы рекомендуем ориентироваться на несколько параметров:
Так как наш бот использует только одну основную библиотеку и состоит из нескольких строк кода, мы выбираем самый младший тариф — Cloud-0. В будущем, если возникнет необходимость, можно перейти на более дорогой тариф.
Шаг 2. Заказать хостинг
Переходим по ссылке: https://www.reg.ru/vps/cloud/, выбираем тариф, операционную систему и шаблон «Чистая ОС». Если у вас нет особых предпочтений, рекомендуем выбрать Ubuntu 18.04. Хотя у REG.RU есть шаблон c Node.js, для чистоты эксперимента всё необходимое ПО мы установим сами. Нажимаем кнопку «Заказать»:
После заказа и оплаты дождёмся настройки сервера:
В течение минуты статус сервера сменится с «В процессе» на «Активен». После этого отобразятся реквизиты доступа к серверу, они также будут отправлены на почту:
Шаг 3. Загрузить бота
Приступим к загрузке бота на сервер. Это можно сделать разными способами — с помощью FTP, SFTP, панели управления или, к примеру, rsync. Мы выберем самый быстрый вариант — SFTP, так как для него нужна только возможность подключения к серверу по SSH, которая обычно присутствует на всех VPS сразу после заказа.
Мы подключимся к серверу с помощью FileZilla. Укажем IP-адрес сервера, а также логин root и пароль в настройках клиента:
При первом подключении появится окно с предупреждением:
Ставим галочку «Всегда доверять этому хосту» и нажимаем «Ок».
Переходим в созданную папку и загружаем файлы index.js и package.json :
Шаг 4. Зайти на сервер по SSH
Теперь нужно подключиться к серверу по SSH, чтобы установить Node.js и запустить бота. Для этого необходим SSH-клиент, например Putty, XShell, Bitvise SSH или любой другой. Функциональность программ может немного отличаться, но большой разницы в использовании между ними нет. Мы выбрали PuTTY как самый популярный и бесплатный SSH-клиент для Windows.
Открываем PuTTY, указываем IP-адрес сервера, порт 22 уже указан по умолчанию:
Нажимаем «Соединиться». Откроется окно с запросом логина:
Шаг 5. Установить Node.js
Теперь займёмся установкой. Обратите внимание, что команды для установки Node.js отличаются в зависимости от операционной системы. В наших примерах указаны команды для Ubuntu, Debian и CentOS — мы будем вводить их в консоли SSH-клиента.
Если вы не знаете, какая ОС установлена на сервере, можете проверить это командой:
Вывод будет примерно таким:
Помимо Node.js нам понадобится утилита Screen, чтобы бот продолжал работать, когда мы отключимся от сервера. Также нужен менеджер пакетов npm для установки зависимостей.
Подождём завершения установки и проверим, что Node.js работает:
Если в ответе отобразилась версия установленного пакета, то всё прошло успешно.
Теперь перейдём в папку с файлом бота и установим зависимости:
Возможные ошибки при установке, и как их решить
При установке могут появиться ошибки вида:
Обычно это связано с тем, что у пользователя недостаточно прав для установки пакетов на сервере, либо предыдущий процесс установки завершён некорректно.
В первом случае необходимо убедиться, что вы подключились к серверу под именем суперпользователя root — при необходимости зайдите на сервер заново.
После этого попробуйте заново запустить установку.
Шаг 6. Запустить и проверить бота
Пришло время запустить бота. Для начала запустим утилиту Screen простой командой:
Перейдём в каталог с файлом бота:
После этого можем запустить бота:
Заходим в Telegram, проверяем бота:
Отлично! Всё работает.
Теперь можно отключиться от сервера и закрыть окно PuTTY, бот продолжит работу.
Шаг 7. Обеспечить автоматический перезапуск бота
Из-за ошибок в коде бот может «упасть» в самый неожиданный момент. Чтобы этого не случилось, настроим автозапуск бота при старте сервера и его автоматический перезапуск при ошибках.
Это позволит боту стабильно работать даже в случае обнаружения багов. Вы сможете оперативно их исправить, а бот в это время продолжит отвечать на запросы.
Большинство современных Linux-систем используют systemd для управления службами, поэтому следующая инструкция подойдёт для последних версий Ubuntu, Debian и CentOS.
Для начала отключим бота командой:
Нам понадобится создать собственную службу, для этого в каталоге /lib/systemd/system создадим файл:
Текст в некоторых строках необходимо отредактировать относительно вашего проекта. Разберём строки, на которые нужно обратить внимание.
В поле Description указывается описание службы. Вы можете указать в ней краткую информацию о боте.
Команда для запуска бота.
Сохраняем файл. В примерах далее мы будем использовать имя службы keksbot — если вы указали другое имя, не забудьте поменять его. Для установки службы воспользуемся командами:
Теперь запустим бота командой:
Готово. Теперь бот будет автоматически запускаться при старте сервера или при возникновении ошибок. Можно проверить это, завершив процесс node:
Через пять секунд бот автоматически перезапустится.
Помимо запуска мы можем управлять ботом командами:
Пишем простого чат-бота для Telegram на PHP
Шукюров Заур, разработчик @KinomanBot и @GaidarForum_bot, написал руководство по созданию простого чат-бота на PHP.
24 июня 2015 года разработчики Telegram открыли платформу для создания ботов (программ, которые выполняют определенные действия по заданному алгоритму).
За полтора года работы платформы набралось много интересных чат-ботов, решающих множество проблем и позволяющих с пользой провести время в мессенджере.
Шаг 1: регистрация бота у @BotFather
Прежде чем начать писать код, нового бота нужно зарегистрировать у «папы всех ботов» — @BotFather, чтобы получить токен (ключ) для работы с Telegram API.
Регистрация проходит в 5 простых этапов:
1) Открываете чат с @BotFather;
2) Вводите или выбираете из списка команду /newbot;
3) Отправляете желаемое название для бота;
4) Пишете юзернейм бота, по которому его будут находить через поиск. Обязательно на конце вашего юзернейма должно быть слово «bot» или «_bot». Например, NetologyRSSbot;
5) По желанию можно сразу настроить полное или краткое описание, список команд и аватарку.
По итогу регистрации получаем наш токен — 375466075:AAEARK0r2nXjB67JiB35JCXXhKEyT42Px8s.
Будьте осторожны: никогда и никому не показывайте токен, иначе ваш бот может быть скомпрометирован. Если по несчастливой случайности кто-то нехороший все-таки узнал ваш токен, то заменить его можно всё в том же @BotFather, нажав на кнопку «Revoke current token» в разделе «API Token».
Шаг 2: выбираем способ обработки запросов
Исходя из официальной документации, Telegram API основан на простых HTTP-запросах. Существует всего два различных способа обрабатывать запросы, которые пользователи будут посылать боту:
1) проверять «вручную», используя «Long Polling»;
2) доверить всё Telegram, поставив «Webhook». В этом случае любой запрос от пользователя Telegram сам будет посылать нам на сервер.
Мы остановимся на втором варианте, но у него есть ограничение: у вас на сайте обязательно должен быть установлен SSL-сертификат, чтобы все запросы проходили через безопасный протокол HTTPS. Самоподписанные и бесплатные сертификаты «Let’s Encrypt», которые поддерживает большинство хостингов, также подходят.
Пример настройки самоподписанного сертификата из официальной документации Telegram.
Шаг 3: пишем код
Писать код бота будем на PHP, но чтобы не изобретать заново колесо, воспользуемся уже готовой и очень удобной библиотекой.
Открыв в браузере эту ссылку, должен прийти JSON-ответ со значением «Webhook was set», что будет означать, что вебхук установлен, и теперь все запросы от пользователей будут присылаться по адресу файла-обработчика.
Переходим к самому главному — обработке этих самых запросов и написанию функционала бота.
Ниже представлен полный листинг файла-обработчика:
Разберем всё по порядку.
1. Сначала мы подключаем скачанную библиотеку, указав путь (лучше полный) до файла автозагрузчика.
2. Создаем экземпляр класса в переменной $telegram и передаем в него наш токен.
В переменной $result получаем информацию о сообщении, которое пришлет нам Telegram.
3. Затем определяем главные переменные: текстовое сообщение, уникальный идентификатор пользователя и его юзернейм. Если предстоит работа с БД, то не забывайте про фильтрацию (или лучше используйте PDO).
4. Создаем нашу клавиатуру, состоящую из трех кнопок.
5. Теперь, когда мы обозначили все переменные, можно перейти к обработке полученного сообщения. Для этого можно использовать конструкцию switch-case либо if-else. Так как принципиальной разницы между ними нет, остановимся на втором варианте, как наиболее привычном.
В самом начале проверяем, заполнена ли переменная $text и является ли сообщение пользователя текстовым.
Если нет, то отправляем пользователю с помощью метода sendMessage сообщение с просьбой ввести текстовое сообщение.
6. Рассмотрим вариант, когда пользователь прислал сообщение с командами /start или /help
В этом случае помимо текста из переменной $reply будет подгружаться клавиатура, состоящая из трёх кнопок: «Последние статьи», «Картинка» и «Гифка».
Реализуется это с помощью метода replyKeyboardMarkup, параметрами которого являются:
8. Для отправки картинки используется метод sendPhoto, для отправки гифки – sendDocument. В обоих случаях Telegram позволяет передавать прямую ссылку на файл, что безусловно очень удобно, но не так быстро, как если бы мы передавали file_id уже отправленной на сервера Telegram картинки или гифки.
9. Для получения последних статей используется простой парсинг RSS ленты Нетологии при помощи встроенной в PHP функции simplexml_load_file.
В параметрах метода sendMessage можно заметить два новых значения:
10. В качестве смайла (стрелка вправо) используются символы \xE2\x9E\xA1. Список всех смайлов в таком виде можно найти на специальном сайте.
11. После того, как вы протестируете бота и будете уверены в его работоспособности, можно отправлять его на всеобщее обозрение.
Благодаря удобному API, боты Telegram могут стать хорошей платформой для автоматизации рутинных действий, настройки уведомлений, удобному и быстрому получению информации и созданию игр.
Бесплатными площадками для продвижения могут послужить каталоги ботов Telegram Bot Store, TeleChappy или 50bots.
А анализировать активность пользователей можно с помощью бесплатного инструмента для аналитики ботов от Яндекса — Botan.
Запускаем телеграм-бота на сервере
Тогда он будет работать круглые сутки, а вы — отдыхать.
Не так давно мы создали телеграм-бота на Python: можно было написать ему свой знак зодиака, а он в ответ давал предсказание о долгой счастливой жизни. Но у бота есть недостаток: он работает, пока запущена программа на нашем компьютере. Если мы её остановим или выключим компьютер, бот тоже перестанет отвечать на сообщения.
Вот что мы сделаем, чтобы бот работал независимо от всего:
Выбираем сервер
Нам нужен сервер, который умеет работать с Python и запускать файлы программы автоматически. На самом деле он у нас уже есть — на нём крутится сайт mihailmaximov.ru. Если вы всё пропустили — держите подборку:
Тот хостинг, который мы выбрали для проектов, уже умеет запускать Python-файлы. Если вы пользуетесь другим сервисом, то проверьте, умеет ли он то же самое.
Готовим программу и отправляем её на сервер
Единственное, что нужно добавить в наш код телеграм-бота, — специальную команду интерпретатору, чтобы он знал, как работать с нашим файлом. Но перед этим нужно проверить, какая версия Python на нём установлена.
Чтобы это узнать, соединимся с сервером по протоколу SSH и спросим у него напрямую. Для этого используем программу Putty, а настройки подключения возьмём в личном кабинете хостинга:
Этих данных достаточно, чтобы управлять сервером по SSH.
Сервер говорит, что у него установлена версия Python 3.3.5 — нам этого хватит. Теперь добавляем в самое начало нашего файла с программой такую строчку:
Настраиваем сервер
Если у вас такого файла нет — создайте его и не забудьте про точку в самом начале названия.
Последнее, что осталось сделать, — настроить права доступа у файла с программой. Находим её среди файлов хостинга и выставляем права 755 или rwxrwxr-x:
Теперь с помощью Putty снова подключаемся к серверу и настраиваем рабочее окружение. Это как будто виртуальная песочница, где мы сможем ставить нужные модули для Python, чтобы не мешать остальным пользователям сервера.
Эти две команды создадут виртуальное пространство для запуска Python-файлов.
Теперь установим Python-модуль для работы с Телеграмом:
pip install pytelegrambotapi
Когда установка закончится, пишем такую команду:
nohup python3 /home/t/thecode/osebe/public_html/cgi-bin/telegoroskop.py
/home/t/thecode/osebe/ — это наш путь к папке cgi-bin, а у вас он будет другим. Поменяйте путь на свой и запускайте.
Результат проекта — бот @TheCode_Baboolya_bot.
Что дальше
Мы сделали самые базовые вещи — запустили скрипт на сервере и сделали так, чтобы он работал там постоянно. Но вот как можно это улучшить: