Простой (пока что) и легкий (пока что) бот для Telegram на PHP
Требования: PHP5 (с включенным "стандартным" модулем MySQL), MySQL, библиотеки для работы с cURL, XML, домен с SSL-сертификатом (требование Telegram).
Основные функции (синтаксис можно посмотреть в api.php, примеры - в scripts): sendMessage(); editMessage(); sendImage(); sendFile(); forwardMessage(); leaveChat(); recognizeVoice(); // опционально, работает на Yandex.SpeechKit
В скриптах можно использовать переменные: $_MESS (array), $_CHAT (array), $_USER (array), $_TEXT. Их описание есть в process.php
В папке scripts есть много всяких скриптов, показывающих как все работает
В силу ряда изменений (например, отказ от устаревшей библиотеки MySQL) часть функций не работает на PHP7. Если есть желание переписать на MySQLi или PDO - буду рад
Процесс установки:
- Создайте бота через @botfather, получите API-токен
- Создайте базу данных, импортируйте туда предложенный SQL-дамп
- В файле settings.php укажите следующие настройки: API-токен, данные для подключения к БД, полный адрес вебхука (включая протокол), логин админа
- Создайте папку
data
(mkdir data
) и в ней файлdebug.log
(touch debug.log
). Выдайте возможность пользователю, от имени которого работает сервер, записывать в этот файл (хороший вариант:chown www-data:www-data data/debug.log
. Плохой вариант:chmod 0666 data/debug.log
. В этот файл записывается последний запрос к вебхуку. - Запустите файл process.php из консоли (php process.php) ИЛИ откройте в браузере по адресу: https://bot.ru/address/process.php?webhook=1 Таким образом вы сообщите серверам Telegram, куда будут приходить все сообщения
- Выставьте в боте приватность на видимость всех сообщений, а не только начинающихся с / через @botfather (если требуется)
Напишите боту /start и попробуйте выполнить команду /testbot
При возникновении вопросов пишите в телеграмм - @D13410N3