- [12.07.2023] - Удален бот, который использовал бесконечный цикл
Используемый стек:
* PHP ^8.0
* Composer ^2.0
- Зарегистрировать бота в телеграмме и получить токен.
- Переименовать
config.php.example
вconfig.php
и заполнить константу токен (см. комментарии в файле) - Установить composer пакеты:
composer i
- После размещения бота на хостинге необходимо его привязать (
setWebhook
).- Пример: если бот доступен по url
https://example.com/bot
, привязать его можно выполнив запрос:https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url=https://example.com/bot
(наличие ssl - обязательно). - Проверить статус бота можно, выполнив запрос:
https://api.telegram.org/bot{BOT_TOKEN}/getWebhook
- Пример: если бот доступен по url
Реализован "эхо" функционал, то есть отвечает вам сообщением, который вы написали. Также реализован функционал отправки
случайного изображения - если боту написать photo
/ Пришлет случайное изображение из директории simple-bot/img
(файлы можно заменить своими).
В данном боте помимо эхо функционала реализованно:
Команды:
/photo
- отправляется случайное изображение из директорииremote/tba-php-sdk/img
(файлы можно заменить своими)./document
- отправляется случайное документ из директорииremote/tba-php-sdk/docs
(файлы можно заменить своими)./video
- отправляется случайное видео из директорииremote/tba-php-sdk/videos
(файлы можно заменить своими)./sticker
- Отправляет случайный стикер из массива$arrIdStickers
(массив находится вremote/tba-php-sdk/Utils/TelegramBotApiHelper
, можно добавить или заменить своими)./start
- Вызывает простую клавиатуру в которой можно отправить контакт (работает на ПК и на смартфоне), отправить свою локацию (работает только на смартфоне). Реализован функционал перехода на другую клавиатуру и возврата к первой, а также возможность убрать клавиатуру (именно убрать, а не скрыть в значок)./help
- вызывает встроенную клавиатуру, в которой реализовано переход по двум ссылкам. Также реализована "Функциональная кнопка" (в конкретном боте после её клика отрабатывает функция, которая изменяет текст и добавляет время клика).
Остальной функционал:
- При отправке любого стикера боту - вы получите его
ID
. - При отправке
location:longitude,latitude
- бот ответит ссылкой на гугл карту (пример:location:55.753220, 37.622513
).
Бот переводчик (v1), перевод фраз осуществляется с помощью dejurin/php-google-translate-for-free
. Доступные переводы:
- С Английского на Русский
- С Русского на английский
Есть возможность переводить как слова, так и словосочетания и предложения. Реализована обработка ошибок, если в бот отправить фото, видео, стикер или какой-то документ, пользователю вернется сообщение, что бот работает только с текстом.
Часть данных храниться в БД (запрос на создание нужной таблицы находится в поддиректории: FAQ).
Бот переводчик v2. Отличие от Бота переводчика v1 заключается в:
- Определение на каком языке отправлен текст происходит автоматически.
- Так как данные для переключения языка больше не нужны - БД в боте не используется.
Реализация бота синоптика. Получение информации о погоде идет через взаимодействие с API сервиса Open Weather. Получить информацию о погоде возможно двумя способами:
- Отправить геолокацию (доступно только с мобильных устройств).
- Указать название города в форте: Город или Город, код страны (Пример: Москва или Москва,ru)
Скриншот: "Пример получения погоды с указанием 'названия' города или 'указанием города, код страны'"
Реализация бота бухгалтера. Помогает следить за финансами и домашней бухгалтерией. Реализован функционал:
- Добавления Доходов / Расходов. Эти категории привязываются к определенной группе, а сами данные хранятся в БД. Структура
- Формирование отчетов:
- Доходы / Расходы за день.
- Доходы / Расходы за месяц.
- Итого за текущий день / месяц - разница между доходом и расходом
Есть возможность вывести текущие категории, которые закреплены за доходами и расходами. Также реализована проверка, когда
при попытке добавить доход или расход указывается не корректный формат. Реализовано ограничение доступа к боту по ID телеграмма (TELEGRAM_USER_ID
).
Скриншот: "Попытка обратиться к боту, если ID телеграмма не совпадает с ID указанным в TELEGRAM_USER_ID"
"[YA] Бот бухгалтер". Так как доступ настроен на мой ID телеграмма - вы увидите ошибку доступа.
- Возникающие исключения отлавливаются в
try/catch
и пишутся в файлtry_catch_logs.txt
, который находится в папке с ботом. - Для записи ответов с телеграмм бота и запросов с вашей стороны реализован методы
addToLogs()
/writeToLogs()
.