Отправить платный контент за звёзды
Действие блок-схемы «Отправить платный контент за звёзды» отправляет фото и видео, которые пользователь видит размытыми, пока не оплатит их звёздами Telegram (⭐). Оплата проходит прямо в Telegram, без платёжной системы. Когда пользователь покупает контент, запускается событие «Оплата контента за звезды» — по нему можно выдать бонус, доступ или записать покупку.
Действие находится в каталоге действий блок-схемы: вкладка «Интеграции», раздел «Телеграм». Событие — в каталоге событий: вкладка «Интеграции», раздел «Telegram».
Оглавление
Поля действия
| Поле |
Зачем |
| Фото и видео |
До 10 файлов — загрузите их в поле. Пользователь увидит их размытыми до оплаты. |
| «Добавить файлы по ссылкам» и «Ссылки на файлы» |
Файлы по ссылкам: каждая ссылка — отдельный тег (вставьте ссылку и нажмите Enter). Тегом можно добавить и переменную — с одной ссылкой или с JSON-массивом ссылок, например из базы данных. Тип (фото или видео) определяется по расширению файла. Telegram сам скачивает файл по ссылке: до 5 МБ для фото и до 20 МБ для видео. |
| «Цена в звёздах ⭐» |
От 1 до 25 000 звёзд. |
| «Текст сообщения» |
Текст под медиа, до 1024 символов, с оформлением: жирный, курсив, ссылки, спойлер, эмодзи и переменные — как в действии «Отправить сообщение». Виден и до оплаты — опишите, что внутри. |
| «Метка покупки» |
Текст для вашего учёта, пользователь его не видит, до 128 байт. Придёт в событие оплаты — по нему понятно, что именно купили, например course-42. |
| «Опции» |
Подпись над медиа, ответ внутри ветки форума, запрет пересылки и сохранения, отправка без звука. |
Событие «Оплата контента за звезды»
Запускается, когда пользователь оплатил контент, отправленный этим действием в личный чат с ботом. Переменные события:
{var:object.payload} — «Метка покупки» из действия (текст);
{var:object.text} — то же самое: по нему событие можно отфильтровать, как входящее сообщение по тексту;
{var:object.type} — всегда paid_media;
- пользователь блок-схемы — покупатель.
Пример содержимого {var:object}:
{"id": 0, "type": "paid_media", "payload": "course-42", "text": "course-42"}
Важно знать:
- Telegram присылает это событие только для покупок с непустой меткой — заполняйте «Метку покупки», если нужна реакция на оплату.
- Покупки контента в каналах боту не сообщаются — событие приходит только для отправок в личный чат с ботом.
- Сумму оплаты событие не передаёт: она равна цене, указанной в действии.
Если событие не приходит: переподключите бота
Telegram отправляет боту только те типы событий, которые были разрешены при его подключении. Если бот подключён до появления этого события, откройте настройки интеграции бота и нажмите «Переподключить» — после этого события об оплате начнут приходить. Делать это нужно один раз.
Куда поступают звёзды
Если контент отправлен в личный чат или группу — на баланс бота в Telegram. Если в канал — на баланс канала. Вывести звёзды можно средствами Telegram (через @BotFather и Fragment); Multy к этим деньгам доступа не имеет.
Результат и ошибки
ID отправленного сообщения сохраняется в {var:effect.message.id}.
Ошибки (текст доступен в {var:error.message}):
Media list is empty — не добавлено ни одного файла.
Price must be 1-25000 stars — цена вне допустимого диапазона.
Payload is longer than 128 bytes — слишком длинная метка (кириллица занимает 2 байта на букву).
Integration with type [...] does not support this effect — контакт не из Telegram.
- Ошибки с текстом от Telegram (начинаются с
Bad Request) — например, Telegram не смог скачать файл по ссылке.
Что делать, если…
| Симптом |
Причина и что сделать |
| Оплата прошла, а событие не запустилось |
Пустая «Метка покупки», бот подключён давно (нажмите «Переподключить» в интеграции) или контент отправлен в канал. |
| Ошибка про файл |
Ссылка закрыта или ведёт на страницу, а не на файл, либо файл больше 5 МБ (фото) / 20 МБ (видео). Загрузите файл в поле действия или в «Файловое хранилище». |
| Видео пришло как фото или наоборот |
Тип определяется по расширению в ссылке. Используйте ссылки с расширением .mp4, .jpg и т.п. |