PHPackages                             letoceiling-coder/telegram - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. letoceiling-coder/telegram

ActiveLibrary[API Development](/categories/api)

letoceiling-coder/telegram
==========================

Laravel package for Telegram Bot API integration

1.0.0(5mo ago)167MITPHPPHP ^8.2

Since Dec 4Pushed 3mo agoCompare

[ Source](https://github.com/letoceiling-coder/telegram)[ Packagist](https://packagist.org/packages/letoceiling-coder/telegram)[ RSS](/packages/letoceiling-coder-telegram/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (3)Versions (2)Used By (0)

Telegram Bot API для Laravel
============================

[](#telegram-bot-api-для-laravel)

[![License: MIT](https://camo.githubusercontent.com/fdf2982b9f5d7489dcf44570e714e3a15fce6253e0cc6b5aa61a075aac2ff71b/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d79656c6c6f772e737667)](https://opensource.org/licenses/MIT)[![PHP Version](https://camo.githubusercontent.com/c5e8da782b1a0673c08b4f474108036d2cc973470eed2d5d89d48e8c8475eee6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e322d626c75652e737667)](https://www.php.net/)

Полноценная библиотека для работы с Telegram Bot API, Mini App и каналами в Laravel приложениях.

✨ Возможности
-------------

[](#-возможности)

- 🤖 **90+ методов Bot API** - отправка сообщений, медиа, опросов, игр
- 📢 **Работа с каналами** - управление участниками, администраторами, ссылками-приглашениями
- 📱 **Mini App интеграция** - валидация initData, работа с пользователями
- ⌨️ **Конструктор клавиатур** - inline и reply клавиатуры с удобным API
- ✅ **Автоматическая валидация** - проверка всех данных перед отправкой
- ⚡ **Rate Limiting** - контроль частоты запросов
- 💳 **Telegram Stars** - поддержка платежей
- 🎮 **Игры** - отправка игр и управление рекордами
- 📊 **Типы данных** - удобные классы для User, Chat, Message

📦 Установка
-----------

[](#-установка)

### Через Composer

[](#через-composer)

```
composer require letoceiling-coder/telegram
```

### Публикация конфигурации

[](#публикация-конфигурации)

```
php artisan vendor:publish --tag=telegram-config
```

### Настройка .env

[](#настройка-env)

```
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_WEBHOOK_URL=https://your-domain.com/api/telegram/webhook
TELEGRAM_MINI_APP_URL=https://your-domain.com
TELEGRAM_BOT_USERNAME=your_bot_username
TELEGRAM_ADMIN_IDS=123456789,987654321
```

🚀 Быстрый старт
---------------

[](#-быстрый-старт)

### Отправка сообщения

[](#отправка-сообщения)

```
use LetoceilingCoder\Telegram\Telegram;

// Простое сообщение
Telegram::send(123456789, 'Привет! 👋');

// С форматированием
Telegram::bot()->sendMessage(123456789, 'Жирный текст', [
    'parse_mode' => 'HTML'
]);
```

### Создание клавиатуры

[](#создание-клавиатуры)

```
use LetoceilingCoder\Telegram\Telegram;

$keyboard = Telegram::inlineKeyboard()
    ->row()
    ->callback('Кнопка 1', 'btn1')
    ->callback('Кнопка 2', 'btn2')
    ->row()
    ->url('Открыть сайт', 'https://example.com')
    ->webApp('Открыть Mini App', 'https://t.me/your_bot/app')
    ->toArray();

Telegram::bot()->sendMessage(123456789, 'Выберите действие:', [
    'reply_markup' => json_encode($keyboard)
]);
```

### Валидация Mini App

[](#валидация-mini-app)

```
use LetoceilingCoder\Telegram\MiniApp;

$miniApp = new MiniApp();
$initData = $request->header('X-Telegram-Init-Data');

if ($miniApp->validateInitData($initData)) {
    $user = $miniApp->getUser($initData);
    $userId = $user['id'];
    $username = $user['username'] ?? null;
}
```

📚 Основные возможности
----------------------

[](#-основные-возможности)

### Отправка медиа

[](#отправка-медиа)

```
use LetoceilingCoder\Telegram\Telegram;

// Фото
Telegram::bot()->sendPhoto(123456789, 'https://example.com/photo.jpg', [
    'caption' => 'Красивое фото!'
]);

// Документ
Telegram::bot()->sendDocument(123456789, 'https://example.com/file.pdf');

// Видео
Telegram::bot()->sendVideo(123456789, 'https://example.com/video.mp4', [
    'caption' => 'Видео'
]);

// Голосовое сообщение
Telegram::bot()->sendVoice(123456789, 'https://example.com/voice.ogg');

// Опрос
Telegram::bot()->sendPoll(123456789, 'Какой фреймворк лучше?', [
    'Laravel', 'Symfony', 'Yii2'
], ['is_anonymous' => false]);
```

### Работа с каналами

[](#работа-с-каналами)

```
use LetoceilingCoder\Telegram\Channel;

$channel = new Channel();

// Проверить подписку
$isMember = $channel->isMember('@channel_username', 123456789);

// Получить администраторов
$admins = $channel->getChatAdministrators('@channel_username');

// Забанить пользователя
$channel->banChatMember('@channel_username', 123456789);

// Создать ссылку-приглашение
$inviteLink = $channel->createChatInviteLink('@channel_username', [
    'member_limit' => 100
]);
```

### Webhook

[](#webhook)

```
use LetoceilingCoder\Telegram\Bot;

$bot = new Bot();

// Установить webhook
$bot->setWebhook('https://your-domain.com/api/telegram/webhook', [
    'secret_token' => 'your_secret_token',
    'allowed_updates' => ['message', 'callback_query']
]);

// Получить информацию о webhook
$info = $bot->getWebhookInfo();

// Удалить webhook
$bot->deleteWebhook();
```

### Редактирование сообщений

[](#редактирование-сообщений)

```
use LetoceilingCoder\Telegram\Telegram;

// Редактировать текст
Telegram::bot()->editMessageText('Новый текст', [
    'chat_id' => 123456789,
    'message_id' => 456
]);

// Удалить сообщение
Telegram::bot()->deleteMessage(123456789, 456);
```

### Управление информацией о боте

[](#управление-информацией-о-боте)

```
use LetoceilingCoder\Telegram\Bot;

$bot = new Bot();

// Установить описание бота (показывается до нажатия "Старт")
$bot->setMyDescription('Что может делать этот бот?

🤖 Я бот для обработки чеков.
📸 Отправьте мне фото чека или PDF.
💰 Я извлеку сумму и дату платежа.');

// Установить краткое описание (показывается в профиле)
$bot->setMyShortDescription('Бот для распознавания чеков и извлечения суммы платежа');

// Установить имя бота
$bot->setMyName('Мой Чек Бот');

// Получить текущее описание
$description = $bot->getMyDescription();
echo $description['result']['description'];

// Установить описание для конкретного языка
$bot->setMyDescription('What this bot can do?', 'en');
$bot->setMyShortDescription('Receipt recognition bot', 'en');

// Установить команды бота
$bot->setMyCommands([
    ['command' => 'start', 'description' => 'Начать работу с ботом'],
    ['command' => 'help', 'description' => 'Показать справку'],
    ['command' => 'settings', 'description' => 'Настройки'],
]);
```

🎯 Использование в контроллерах
------------------------------

[](#-использование-в-контроллерах)

### Webhook обработчик

[](#webhook-обработчик)

```
namespace App\Http\Controllers\Api;

use Illuminate\Http\Request;
use LetoceilingCoder\Telegram\Telegram;

class TelegramWebhookController extends Controller
{
    public function handle(Request $request)
    {
        $update = $request->all();

        if (isset($update['message'])) {
            $this->handleMessage($update['message']);
        }

        if (isset($update['callback_query'])) {
            $this->handleCallback($update['callback_query']);
        }

        return response()->json(['ok' => true]);
    }

    protected function handleMessage($message)
    {
        $chatId = $message['chat']['id'];
        $text = $message['text'] ?? '';

        if ($text === '/start') {
            Telegram::send($chatId, 'Добро пожаловать!');
        }
    }

    protected function handleCallback($callback)
    {
        $callbackId = $callback['id'];
        $data = $callback['data'];

        Telegram::callback()->answerWithNotification($callbackId, 'Обработано!');
    }
}
```

### Middleware для Mini App

[](#middleware-для-mini-app)

```
namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use LetoceilingCoder\Telegram\MiniApp;
use LetoceilingCoder\Telegram\Exceptions\TelegramValidationException;

class ValidateTelegramInitData
{
    public function handle(Request $request, Closure $next)
    {
        $initData = $request->header('X-Telegram-Init-Data');

        if (!$initData) {
            return response()->json(['error' => 'Unauthorized'], 401);
        }

        try {
            $miniApp = new MiniApp();
            $user = $miniApp->validateAndGetUser($initData);
            $request->merge(['telegram_user' => $user]);
        } catch (TelegramValidationException $e) {
            return response()->json(['error' => 'Invalid signature'], 401);
        }

        return $next($request);
    }
}
```

📖 API Документация
------------------

[](#-api-документация)

### Основные классы

[](#основные-классы)

- **`Telegram`** - Фасад для быстрого доступа
- **`Bot`** - Работа с Bot API (90+ методов)
- **`Channel`** - Работа с каналами и группами (25+ методов)
- **`MiniApp`** - Валидация Mini App
- **`Callback`** - Обработка callback query
- **`Keyboard`** - Конструктор клавиатур

### Основные методы Bot API

[](#основные-методы-bot-api)

#### Получение обновлений

[](#получение-обновлений)

- `getUpdates()` - получить обновления
- `setWebhook()` - установить webhook
- `deleteWebhook()` - удалить webhook
- `getWebhookInfo()` - информация о webhook

#### Отправка сообщений

[](#отправка-сообщений)

- `sendMessage()` - текстовое сообщение
- `sendPhoto()` - фото
- `sendAudio()` - аудио
- `sendDocument()` - документ
- `sendVideo()` - видео
- `sendVoice()` - голосовое сообщение
- `sendPoll()` - опрос
- `sendDice()` - игральный кубик
- `sendLocation()` - локация
- `sendContact()` - контакт

#### Редактирование

[](#редактирование)

- `editMessageText()` - редактировать текст
- `editMessageCaption()` - редактировать подпись
- `deleteMessage()` - удалить сообщение

#### Платежи

[](#платежи)

- `sendInvoice()` - отправить инвойс
- `getStarTransactions()` - получить транзакции Stars
- `refundStarPayment()` - вернуть платеж

#### Информация о боте

[](#информация-о-боте)

- `getMe()` - получить информацию о боте
- `setMyName()` - установить имя бота (до 64 символов)
- `getMyName()` - получить имя бота
- `setMyDescription()` - установить описание бота (до 512 символов)
- `getMyDescription()` - получить описание бота
- `setMyShortDescription()` - установить краткое описание (до 120 символов)
- `getMyShortDescription()` - получить краткое описание
- `setMyCommands()` - установить команды бота
- `getMyCommands()` - получить команды бота
- `deleteMyCommands()` - удалить команды бота
- `setChatMenuButton()` - установить кнопку меню
- `getChatMenuButton()` - получить кнопку меню

Полный список методов смотрите в [src/README.md](src/README.md)

🔒 Валидация и лимиты
--------------------

[](#-валидация-и-лимиты)

Все данные автоматически проверяются перед отправкой:

```
use LetoceilingCoder\Telegram\Exceptions\TelegramValidationException;

try {
    // Если текст длиннее 4096 символов - выбросит исключение
    Telegram::send(123456789, str_repeat('A', 5000));
} catch (TelegramValidationException $e) {
    echo $e->getMessage();
}
```

### Основные лимиты:

[](#основные-лимиты)

- **Текст сообщения**: до 4096 символов
- **Подпись к медиа**: до 1024 символов
- **Callback data**: до 64 байт
- **Описание бота**: до 512 символов
- **Краткое описание бота**: до 120 символов
- **Имя бота**: до 64 символов
- **Rate limit**: 30 запросов/сек к API, 1 сообщение/сек в чат

Подробнее: [src/LIMITS.md](src/LIMITS.md)

🛠️ Дополнительная документация
------------------------------

[](#️-дополнительная-документация)

- **[src/README.md](src/README.md)** - Полная документация с примерами
- **[src/EXAMPLES.md](src/EXAMPLES.md)** - Примеры использования
- **[src/LIMITS.md](src/LIMITS.md)** - Лимиты и валидация
- **[src/FEATURES.md](src/FEATURES.md)** - Полный список возможностей
- **[src/SETUP.md](src/SETUP.md)** - Подробная инструкция по установке

🔗 Официальная документация Telegram
-----------------------------------

[](#-официальная-документация-telegram)

- [Bot API](https://core.telegram.org/bots/api)
- [Mini Apps](https://core.telegram.org/bots/webapps)
- [Payments](https://core.telegram.org/bots/payments)

📝 Лицензия
----------

[](#-лицензия)

MIT License. См. [LICENSE](LICENSE) файл для деталей.

🤝 Поддержка
-----------

[](#-поддержка)

Если у вас есть вопросы или предложения, создайте [Issue](https://github.com/letoceiling-coder/telegram/issues) в репозитории.

###  Health Score

38

—

LowBetter than 85% of packages

Maintenance76

Regular maintenance activity

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

165d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/bba6a99134d905eaed0dcccbc768321a5d14edc29aab6dedc45cac31beb0d36e?d=identicon)[letoceiling-coder](/maintainers/letoceiling-coder)

---

Top Contributors

[![Postads](https://avatars.githubusercontent.com/u/25578332?v=4)](https://github.com/Postads "Postads (4 commits)")

---

Tags

apilaravelbottelegram

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/letoceiling-coder-telegram/health.svg)

```
[![Health](https://phpackages.com/badges/letoceiling-coder-telegram/health.svg)](https://phpackages.com/packages/letoceiling-coder-telegram)
```

###  Alternatives

[openai-php/laravel

OpenAI PHP for Laravel is a supercharged PHP API client that allows you to interact with the Open AI API

3.7k7.6M74](/packages/openai-php-laravel)[nutgram/nutgram

The Telegram bot library that doesn't drive you nuts

714214.9k8](/packages/nutgram-nutgram)[nickurt/laravel-postcodeapi

Universal PostcodeApi for Laravel 11.x/12.x/13.x

97221.2k](/packages/nickurt-laravel-postcodeapi)[mozex/anthropic-laravel

Anthropic PHP for Laravel is a supercharged PHP API client that allows you to interact with the Anthropic API

71226.4k1](/packages/mozex-anthropic-laravel)[scriptdevelop/whatsapp-manager

Paquete para manejo de WhatsApp Business API en Laravel

762.6k](/packages/scriptdevelop-whatsapp-manager)[klev-o/telegram-bot-api

Simple and convenient object-oriented implementation Telegram bot API with php version ^7.4 support. You'll like it)

457.8k1](/packages/klev-o-telegram-bot-api)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
