DevCraft Документации
РазработкиDatalife Engine (DLE)Re: Post - Пересылка новостейProviders

Telegram (RePost)

Встроенный провайдер RePost (входит в ядро). Эталон канала доставки.

Версия канала: 200.2.0

Совместимость: RePost ≥ 200.1.0

Зависимости

  • luzrain/telegram-bot-api
  • guzzlehttp/guzzle

Vendor в архив плагина не входит. В манифесте RePost: composer_requiredluzrain/telegram-bot-api (hard).

composer require luzrain/telegram-bot-api guzzlehttp/guzzle && composer dump-autoload

Каталог

devcraft/src/modules/RePost/Provider/Telegram/
├── init.php
├── settings.schema.php
├── TelegramProvider.php
├── TelegramBotFactory.php
├── TelegramTemplateTags.php
├── MediaLimits.php
└── …

init.php: name=telegram, title=Telegram, version=200.2.0.

Получение токена и chat id

1. Токен бота (tg_bot)

  1. В Telegram откройте @BotFather.
  2. Команда /newbot (или /token / /mybots → бот → API Token, если бот уже есть).
  3. Укажите display name и username (username обязан оканчиваться на bot).
  4. BotFather выдаст строку вида 123456:ABC-DEF… — это tg_bot.

Токен равносилен паролю: не светите его в публичных репозиториях и шаблонах. Пошаговые скриншоты BotFather / канала: Настройка Telegram-бота. Официально: Telegram Bots, Bot API.

2. Канал / группа и права бота

  1. Создайте канал или группу (для публичных анонсов обычно канал).
  2. Добавьте бота участником и назначьте администратором с правом публиковать сообщения (и при необходимости редактировать).
  3. Для канала удобен публичный @username канала; для супергруппы чаще нужен числовой id.

3. Chat id (tg_chat_id)

Допустимые форматы:

ФорматПримерКогда
@username@mychannelПубличный канал / группа с username
Числовой id-1001234567890Приватный канал / супергруппа

Как получить числовой id в RePost:

  1. Напишите боту в личку или перешлите в канал/группу любое сообщение (чтобы появился update).
  2. В форме подключения нажмите Получить chat id (вызов getUpdates) — в списке будут chat id диалогов, где бот что-то видел.
  3. Либо временно: https://api.telegram.org/bot<ТОКЕН>/getUpdates в браузере и найдите "chat":{"id":…}.

Кнопка Тест в форме отправляет пробный sendMessage в указанный chat.

4. Поля подключения

КлючОписание
tg_botТокен от BotFather
tg_chat_id@channel или numeric id
tg_send_typetext / media / media_* / photo / audio / video / document

См. также ../guides/connections.md.

Тип отправки (tg_send_type)

ТипПоведение
textТолько текст
photo / audio / video / documentПервый файл соответствующего вида
mediaAlbum photo/video; audio — группа (SendMediaGroup)
media_video / media_audio / media_documentГруппа по виду
  • audio / video / document / photo — только первый файл
  • Oversized локальные файлы отсекаются filterMediaByLimits(); остаётся подходящее медиа или текст

Лимиты Bot API (MediaLimits)

ТипОриентир
photo≈ 10 Mb
video / audio / document≈ 50 Mb

Видео-расширения: mp4, m4v, mkv, webm, avi, mov, mpeg, mpg, 3gp.
SendVideo — для mp4/m4v; остальные форматы уходят как документ (SendDocument / InputMediaDocument), лимит тот же ≈ 50 Mb.

Теги шаблона

TelegramTemplateTags: кнопки, [repost_media_*], HTML-allowlist Bot API. Справочник в админке: Теги шаблонов.

Связанные страницы

On this page