green-tmz / laravel-telegram-bot
Telegram Bot Package for Laravel
1.1.1
2025-06-21 10:18 UTC
Requires
- php: ^8.2
README
Документация
Laravel-telegram-bot
Laravel-telegram-bot пакет для Laravel 12.x
Требования
- PHP >= 8.2
- Laravel 12.x
Установка
Установить через composer, выполнив команду в консоле:
composer require green-tmz/laravel-telegram-bot
Публикация конфигов:
php artisan vendor:publish --provider="Green\TelegramBot\Providers\TelegramServiceProvider"
Откройте ваш .env
измените строку APP_URL
на APP_URL=https://<ваш_домен>
и добавьте в конец файла
TELEGRAM_BOT_TOKEN=<API_TOKEN_ВАШЕГО_БОТА> TELEGRAM_WEBHOOK_URL=/telegram/webhook
Регистрация веб-хуков:
php artisan telegram:set-webhook
Публикация команд:
Для публикации команд Telegram выполните:
php artisan telegram:publish-commands
В config/telegram.php
для команд поменять namespace на
\App\Console\Commands\TelegramBot\<класс_обработки_команды>
.
Пример:
'commands' => [ 'start' => \App\Console\Commands\TelegramBot\StartCommand::class, 'set-webhook' => \Green\TelegramBot\Console\Commands\SetupTelegramWebhook::class, ],
Базовое использование
Для работы с ботом добавьте фасад Telegram:
use Green\TelegramBot\Facades\Telegram;
Отправка сообщения:
public function handle(array $update): void { $chatId = $update['message']['chat']['id']; $name = $update['message']['from']['first_name']; Telegram::sendMessage($chatId, "Привет, $name! Добро пожаловать!"); }
Использование клавиатуры:
- reply keyboard
use Green\TelegramBot\Facades\Telegram; use Green\TelegramBot\Services\Keyboard; public function handle(array $update): void { $chatId = $update['message']['chat']['id']; $name = $update['message']['from']['first_name']; $keyboard = Keyboard::make() ->setResizeKeyboard(true) ->setOneTimeKeyboard(true) ->setSelective(false) ->row([ Keyboard::button('Обычная кнопка 1'), Keyboard::button('Обычная кнопка 2'), ]) ->row([ Keyboard::button('Отправить мой контакт')->requestContact(), ]) ->row([ Keyboard::button('Отправить мою локацию')->requestLocation(), ]) ->row([ Keyboard::button('Специальная кнопка') ->callbackData('action=special_action&user_id=123'), ]); Telegram::sendMessage($chatId, "Привет, $name! Добро пожаловать!", [ 'reply_markup' => $keyboard->toJson() ]); }
Лицензия
Лицензия MIT. Пожалуйста прочитайте Файл лицензии для получения дополнительной информации.