{"id":21838283,"url":"https://github.com/yaleksandr89/telegram-bots","last_synced_at":"2026-05-21T14:02:00.785Z","repository":{"id":133301657,"uuid":"454938885","full_name":"yaleksandr89/telegram-bots","owner":"yaleksandr89","description":"Реализация телеграм ботом с различным функционалом","archived":false,"fork":false,"pushed_at":"2024-07-21T20:21:52.000Z","size":29682,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T10:30:52.615Z","etag":null,"topics":["composer","guzzle","guzzle-php-library","guzzlehttp","php","php8","php82","telegram","telegram-api","telegram-bot","telegram-bot-api","telegram-bot-example","telegram-bot-php","telegram-bot-sdk","telegram-bots","telegram-userbot","telegrambot"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yaleksandr89.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-02T21:18:52.000Z","updated_at":"2024-07-21T20:21:56.000Z","dependencies_parsed_at":"2024-07-21T21:41:47.948Z","dependency_job_id":"1d679e86-cc27-4817-8d76-611f98d297aa","html_url":"https://github.com/yaleksandr89/telegram-bots","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaleksandr89%2Ftelegram-bots","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaleksandr89%2Ftelegram-bots/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaleksandr89%2Ftelegram-bots/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yaleksandr89%2Ftelegram-bots/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yaleksandr89","download_url":"https://codeload.github.com/yaleksandr89/telegram-bots/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244819802,"owners_count":20515646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","guzzle","guzzle-php-library","guzzlehttp","php","php8","php82","telegram","telegram-api","telegram-bot","telegram-bot-api","telegram-bot-example","telegram-bot-php","telegram-bot-sdk","telegram-bots","telegram-userbot","telegrambot"],"created_at":"2024-11-27T21:09:52.159Z","updated_at":"2026-05-21T14:02:00.723Z","avatar_url":"https://github.com/yaleksandr89.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Telegram Bots\n\n### UPD\n\n* [12.07.2023] - Удален бот, который использовал бесконечный цикл\n\n## Установка\n\n```\nИспользуемый стек:\n* PHP ^8.0\n* Composer ^2.0\n```\n\n1. Зарегистрировать бота в телеграмме и получить токен.\n2. Переименовать `config.php.example` в `config.php` и заполнить константу токен (см. комментарии в файле)\n3. Установить composer пакеты: `composer i`\n4. После размещения бота на хостинге необходимо его привязать (`setWebhook`).\n    * Пример: если бот доступен по url `https://example.com/bot`, привязать его можно выполнив запрос: `https://api.telegram.org/bot{BOT_TOKEN}/setWebhook?url=https://example.com/bot` (наличие ssl - **обязательно**).\n    * Проверить статус бота можно, выполнив запрос: `https://api.telegram.org/bot{BOT_TOKEN}/getWebhook`\n\n## Реализованные боты\n\n### simple-bot\n\nРеализован \"эхо\" функционал, то есть отвечает вам сообщением, который вы написали. Также реализован функционал отправки\nслучайного изображения - если боту написать `photo`/ Пришлет случайное изображение из директории `simple-bot/img`\n(файлы можно заменить своими).\n\n\u003e [Пример работающего SimpleForStudyBot бота](https://t.me/SimpleForStudyBot \"Пример работающего SimpleForStudyBot бота\")\n\n### tba-php-sdk\n\nВ данном боте помимо эхо функционала реализованно:\n\n**Команды**:\n\n* `/photo` - отправляется случайное изображение из директории `remote/tba-php-sdk/img` (файлы можно заменить своими).\n* `/document` - отправляется случайное документ из директории `remote/tba-php-sdk/docs` (файлы можно заменить своими).\n* `/video` - отправляется случайное видео из директории `remote/tba-php-sdk/videos` (файлы можно заменить своими).\n* `/sticker` - Отправляет случайный стикер из массива `$arrIdStickers` (массив находится в `remote/tba-php-sdk/Utils/TelegramBotApiHelper`,\n  можно добавить или заменить своими).\n* `/start` - Вызывает простую клавиатуру в которой можно **отправить контакт** (работает на ПК и на смартфоне),\n  **отправить свою локацию** (работает только на смартфоне). Реализован функционал перехода на другую клавиатуру и возврата к\n  первой, а также возможность убрать клавиатуру (именно убрать, а не скрыть в значок).\n* `/help` - вызывает встроенную клавиатуру, в которой реализовано переход по двум ссылкам. Также реализована\n  \"Функциональная кнопка\" (в конкретном боте после её клика отрабатывает функция, которая изменяет текст и добавляет время клика).\n\n**Остальной функционал**:\n\n* При отправке любого стикера боту - вы получите его `ID`.\n* При отправке `location:longitude,latitude` - бот ответит ссылкой на гугл карту (пример: `location:55.753220, 37.622513`).\n\n\u003e [Пример работающего TbaPhpSdkBot бота](https://t.me/TbaPhpSdkBot \"Пример работающего TbaPhpSdkBot бота\")\n\n### @ya_translation-bot-v1\n\nБот переводчик (v1), перевод фраз осуществляется с помощью `dejurin/php-google-translate-for-free`. Доступные переводы:\n\n* С Английского на Русский\n* С Русского на английский\n\nЕсть возможность переводить как слова, так и словосочетания и предложения. Реализована обработка ошибок, если в бот отправить\nфото, видео, стикер или какой-то документ, пользователю вернется сообщение, что бот работает только с текстом.\n\nЧасть данных храниться в БД (запрос на создание нужной таблицы находится в поддиректории: FAQ).\n\n\u003e [Пример работающего \"\\[YA\\] Бот переводчик v1\"](https://t.me/ya_translation_bot \"Пример работающего [YA] Бот переводчик v1\")\n\n### @ya_weather_v1_bot\n\nБот переводчик v2. Отличие от Бота переводчика v1 заключается в:\n\n* Определение на каком языке отправлен текст происходит автоматически.\n* Так как данные для переключения языка больше не нужны - БД в боте не используется.\n\n\u003e [Пример работающего \"\\[YA\\] Бот переводчик v2\"](https://t.me/ya_translation_v2_bot \"Пример работающего [YA] Бот переводчик v2\")\n\n### @ya_weather_v1_bot\n\nРеализация бота синоптика. Получение информации о погоде идет через взаимодействие с API сервиса Open Weather. Получить информацию\nо погоде возможно двумя способами:\n\n1. Отправить геолокацию (доступно только с мобильных устройств).\n2. Указать название города в форте: Город или Город, код страны (Пример: Москва или Москва,ru)\n\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Пример получения погоды с указанием 'названия' города или 'указанием города, код страны'\"\u003c/summary\u003e\n\n![weather-bots-use-name-city.png](weather-bots-use-name-city.png)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Пример получения погоды при отправке геолокации (доступно только с мобильных устройств)\"\u003c/summary\u003e\n\n![weather-bots-use-location.png](weather-bots-use-location.png)\n\u003c/details\u003e\n\n\u003e [Пример работающего \"\\[YA\\] Бот синоптик\"](https://t.me/ya_weather_v1_bot \"Пример работающего [YA] Бот синоптик\")\n\n### @ya_accountant_bot\n\nРеализация бота бухгалтера. Помогает следить за финансами и домашней бухгалтерией. Реализован функционал:\n\n* Добавления Доходов / Расходов. Эти категории привязываются к определенной группе, а сами данные хранятся в БД. Структура\n* Формирование отчетов:\n    * Доходы / Расходы за день.\n    * Доходы / Расходы за месяц.\n    * Итого за текущий день / месяц - разница между доходом и расходом\n\nЕсть возможность вывести текущие категории, которые закреплены за доходами и расходами. Также реализована проверка, когда\nпри попытке добавить доход или расход указывается не корректный формат. Реализовано ограничение доступа к боту по ID телеграмма (`TELEGRAM_USER_ID`).\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Общий интерфейс управления\"\u003c/summary\u003e\n\n![ya_accountant-1.png](ya_accountant-1.png)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Вывод категорий закрепленных за Доходами/Расходами\"\u003c/summary\u003e\n\n![ya_accountant-2.png](ya_accountant-2.png)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Вывод информации за текущий день: 'Доходы', 'Расходы', 'Итого'\"\u003c/summary\u003e\n\n![ya_accountant-3.png](ya_accountant-3.png)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Процесс добавления дохода (корректный и не корректный формат)\"\u003c/summary\u003e\n\n![ya_accountant-4.png](ya_accountant-4.png)\n\u003c/details\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eСкриншот: \"Попытка обратиться к боту, если ID телеграмма не совпадает с ID указанным в TELEGRAM_USER_ID\"\u003c/summary\u003e\n\n![ya_accountant-5.png](ya_accountant-5.png)\n\u003c/details\u003e\n\n\u003e [\"\\[YA\\] Бот бухгалтер\"](https://t.me/ya_accountant_bot \"[YA] Бот бухгалтер\").\n\u003e Так как доступ настроен на мой ID телеграмма - вы увидите ошибку доступа.\n\n---\n\n### Для отладки в ботах реализован функционал записи в логи\n\n* Возникающие исключения отлавливаются в `try/catch` и пишутся в файл `try_catch_logs.txt`, который находится в папке с ботом.\n* Для записи ответов с телеграмм бота и запросов с вашей стороны реализован методы `addToLogs()` / `writeToLogs()`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaleksandr89%2Ftelegram-bots","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyaleksandr89%2Ftelegram-bots","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyaleksandr89%2Ftelegram-bots/lists"}