Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

appto-dev/telegram-api-parser

Repository files navigation

Парсер документации Telegram

License: MIT

Мне с периодичностью требуется создать бота в Telegram для моих клиентов. Я понимаю, что есть достаточно библиотек, для их создания, но я всегда испытывал некоторые проблемы используя их.

  • Мне хотелось иметь минимальный набор функций, а именно описание Telegram типов и методов. Чтобы моя IDE (PHPStorm) могла мне подсказывать какие параметры нужно заполнить, для того или иного метода Telegram.
  • Все библиотеки которые я использовал до этого, не могли обновляться часто, новые функции из API приходили слишком поздно.
  • Некоторые библиотеки содержат кучу не нужного мне функционала или логики.

В ручную отслеживать, что изменилось с момента последнего обновления Telegram Bot API, сложно, или невозможно. Изучив HTML-разметку документации, мне пришла идея создать парсер, который решит проблему поиска изменений в API. Благодаря которой, я теперь могу получать документированную последнюю версию Bot API, буквально за несколько команд в консоли.

🎁 Пример работы генератора: mahlenko/telegram-bot-cast-laravel - вы можете использовать его в своем проекте.

🚀 GitHub Action

Добавлен workflow, который раз в день получает последнюю версию Telegram Bot API. Если версия обновилась, сгенерирует новые файлы для репозитория mahlenko/telegram-bot-cast-laravel теперь там всегда "свежая" сборка.

Установка и использование

Просто склонируйте репозиторий себе, и запустите несколько команд:

  • php console telegram:parse - для парсинга актуальной документации в JSON файл.
  • php console telegram:generate - для генерации PHP файлов.

✅ Готово! Заберите сгенерированные файлы из директории build себе в проект.

Расширение сгенерированных классов

Для простой работы с классами, может понадобится их расширить собственным классом. Например, для работы в Laravel, я использую библиотеку Spatie Laravel Data, по сути библиотека делает удобной работу с DTO. Также библиотека дает подсказки IDE по ключам, при создании класса.

\Method\SendMessage::from([
    'chat_id' => 0000000,
    'text' => 'Your message'
])

Для генерации расширенных классов используйте аргумент --extends:

php console telegram:generate --extends=\\Spatie\\LaravelData\\Data

После чего, сгенерированные классы получат ваше расширение и все возможности нового класса:

final class SendMessage extends \Spatie\LaravelData\Data {
    // ...
}

Важно! Ваш класс должен реализовывать метод toArray().

Зависимости

✨ Благодарности

TonBlockchainLogo TonBlockchainLogo

Вы всегда можете отправить благодарность на чашку кофе или больше 😉 с помощью TON на мой кошелек appto-wallet.ton

About

Парсинг Telegram Bot API и генерация PHP файлов типов и методов.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.