Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Api Laravel Package

telegram-bot/api

Native PHP wrapper for the Telegram Bot API with no extra requirements. Supports all API methods and response types, including sending messages, documents, reply/inline keyboards, and media groups. Install via Composer and start building bots quickly.

View on GitHub
Deep Wiki
Context7

Native PHP Wrapper for Telegram BOT API

Frequently asked questions about Api
How do I integrate this Telegram Bot API wrapper into a Laravel project?
Start by installing the package via Composer (`composer require telegram-bot/api`). Then, register the `BotApi` or `Client` class in Laravel’s service container (e.g., in a service provider) to leverage dependency injection. For webhooks, define a route like `Route::post('/telegram-webhook', [YourController::class, 'handleUpdate'])` and validate incoming updates manually.
Does this package support Laravel’s queue system for async bot processing?
The package itself doesn’t natively support queues, but you can dispatch events (e.g., `telegram.update.received`) to Laravel’s queue system. Use the `Client` class’s event-driven methods like `on()` or `command()` to trigger queue jobs for handling updates asynchronously. This works well for high-traffic bots.
What Laravel versions and PHP versions are supported by this package?
The package requires PHP 8.1+ and is framework-agnostic, meaning it works with any Laravel 8.x, 9.x, or 10.x project. It leverages PSR standards (e.g., HTTP clients) for broad compatibility. Test thoroughly if using older Laravel versions, as some features may rely on newer PHP syntax.
Can I store Telegram chat/user data in Laravel’s database using this package?
The package doesn’t include Eloquent models, but you can easily create them yourself. Map Telegram’s `Chat`, `User`, or `Message` types to Laravel models by extending the package’s `Types` namespace classes. For example, create a `Chat` model with fields like `id`, `type`, and `title` to sync data bidirectionally.
How do I handle rate limits (e.g., 429 errors) in production?
Telegram enforces rate limits, so implement retries with exponential backoff. Use Laravel’s `retry()` helper or decorate the `BotApi`/`Client` classes to catch `HttpException` (e.g., 429) and retry requests. For high-traffic bots, consider using Laravel’s queue system to throttle updates and avoid hitting limits.
Does this package support Telegram’s WebApp integration or payments?
Yes, the package fully supports advanced Telegram Bot API features like WebApp integration (e.g., `sendWebAppMessage`) and payments (e.g., `sendInvoice`). These methods are available out-of-the-box, but you’ll need to handle the frontend logic (e.g., WebApp buttons) separately in your Laravel app.
How can I test my Laravel bot using this package?
The package includes unit tests, but you’ll need to write Laravel-specific tests for webhook routes, queue jobs, or service container bindings. Use Laravel’s `Http::fake()` to mock Telegram API responses in tests. For webhooks, test the route handling with `Route::post()` and validate the `Update` object structure.
Is there a built-in way to validate Telegram webhook updates in Laravel?
No, the package doesn’t include validation logic, but you can easily add it. Use Laravel’s middleware to verify the `update_id` or `hash` fields in incoming webhook requests. Alternatively, manually validate the `Update` object against Telegram’s API schema before processing.
Can I use Guzzle or another HTTP client instead of the default one?
Yes, the package supports custom HTTP clients via PSR-18 (`psr/http-client`). Pass your preferred client (e.g., Guzzle) to the `Client` constructor, or extend the `BotApi` class to inject a custom client. This is useful for testing or adding middleware like logging or retries.
What are the alternatives to this package for Laravel Telegram bots?
Alternatives include `irazasyed/laravel-telegram-bot` (Laravel-specific with Eloquent models) or `telegram-bot-sdk` (another PHP wrapper). The `telegram-bot/api` package stands out for its minimal dependencies, strong typing (PHP 8.1+), and full Bot API coverage, but lacks Laravel-specific conveniences like built-in queue jobs or Eloquent models.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor