laravel-notification-channels/telegram
Send Telegram notifications from Laravel using the Telegram Bot API. Supports text messages, inline keyboards, dice, polls, media groups, photos, documents, locations, contacts, stickers and more, plus message routing, response handling and direct client access.
TelegramMessage::escapeMarkdown by @alies-dev in https://github.com/laravel-notification-channels/telegram/pull/209TelegramFile::file() now strictly normalizes inputs to PSR-7 streams and rejects unsupported types earlier. Passing arbitrary values through to Guzzle is no longer allowed.Laravel 13 support.
New Telegram payload builders and fields:
businessConnectionId(), messageThreadId(), directMessagesTopicId()protectContent(), allowPaidBroadcast(), messageEffectId()replyParameters(), suggestedPostParameters()TelegramLocation enhancements: horizontalAccuracy(), livePeriod(), heading(), proximityAlertRadius().
TelegramMessage: entities(), linkPreviewOptions().
TelegramFile: captionEntities(), showCaptionAboveMedia().
New builders: TelegramDice, TelegramMediaGroup.
Low-level client helpers:
sendDice, sendMediaGroup, sendChatActioneditMessageText, editMessageCaption, editMessageMedia, editMessageReplyMarkupstopPoll, deleteMessage, deleteMessagesMinimum PHP version bumped to 8.3.
Dropped Laravel 11 support.
Codebase now enforces stricter typing (strict_types, improved PHPDoc shapes).
Centralized response decoding via Telegram::decodeResponse() using Guzzle JSON utilities.
Improved Telegram error parsing with safer fallbacks.
Refactored:
TelegramChannel recipient resolution and response handlingTelegramFile upload handling (clear remote vs local distinction)TelegramMessage chunked sending behaviorInteractsWithTelegramMediaonError() now accepts any callable.
HasSharedLogic typing hardened; keyboard layouts normalized for invalid column counts.
TelegramBase now accepts optional Telegram instance (better testability).
TelegramUpdates::get() safely returns empty array on invalid responses.
Config now supports both services.telegram.* and legacy keys.
pest-plugin-laravel 4.level: max with stricter rules enabled.Expanded coverage:
Updated test suite to align with refactored runtime and tooling.
Full Changelog: https://github.com/laravel-notification-channels/telegram/compare/6.0.0...7.0.0
TelegramVenue to support sendVenue method.sticker method to the TelegramFile to send sticker file.sendWhen method to conditionally send a message.buttonWithWebApp method to open web app from a button.onError method to handle exceptions. Based of https://github.com/laravel-notification-channels/telegram/pull/201 by @Hesammousavi.sendFile to support raw data sending.escapedLine method.HasSharedLogic trait.keyboard method parameters to $requestLocation and $requestContact to be consistent.Full Changelog: https://github.com/laravel-notification-channels/telegram/compare/5.0.0...6.0.0
Full Changelog: https://github.com/laravel-notification-channels/telegram/compare/4.0.0...5.0.0
< 8.1.Full Changelog: https://github.com/laravel-notification-channels/telegram/compare/3.0.0...4.0.0
line() method (adapted from a PR) by @llabbasmkhll in https://github.com/laravel-notification-channels/telegram/pull/149.TelegramSender contract to TelegramSenderContracttoArray() method to TelegramUpdates to retrieve payload.Full Changelog: https://github.com/laravel-notification-channels/telegram/compare/2.1.0...3.0.0
when on methods chain. PR #139.< 7.4 and Laravel < 8.chunk($limit)) in cases where the message is too long. Closes #127.disableNotification method.How can I help you explore Laravel packages today?