https://api.rek.la
Подключение
1
Запросите доступ
Напишите в @rekla_support:
«Хочу подключиться как партнёр к Rekla External API»Вам выдадут:
- Partner ID — для заголовка
X-Partner-Id - Webhook Secret — для проверки подписи вебхуков
- Start-команда — для создания API-ключей пользователями
2
Получите API-ключ пользователя
Пользователь вводит команду в боте @rekla:Бот создаёт ключ и показывает его пользователю. Одновременно Rekla отправит вебхук
api_key.created на ваш сервер с данными ключа.3
Делайте запросы
Аутентификация
Эндпоинты
GET /external-api/me
Получить информацию о владельце API-ключа.200:
GET /external-api/channels//can-post
Проверить, может ли пользователь публиковать в указанный канал. Проверяется два условия:- У пользователя есть права автопостинга в канале
- Бот Rekla является администратором канала с правами на публикацию
200:
403:
channel_id — это числовой Telegram ID канала (обычно начинается с -100).POST /external-api/publications
Создать одну или несколько публикаций. Принимает массив объектов.201:
Поля PublicationCreateRequest
Поля PublicationCreateRequest
Правила валидации
Правила валидации
Альбомы (
media_type: album): поле album обязательно и не может быть пустым. Только последний элемент альбома может содержать caption. Поле text должно совпадать с caption последнего элемента.Обычные медиа: для одиночного медиа и каждого элемента альбома обязателен публично доступный file_url. file_id, полученный другим Telegram-ботом, бот Rekla использовать не может.Статья (media_type: rich_message): передайте точные blocks и is_rtl из message.rich_message, полученного ботом партнёра. Для каждого встроенного фото, видео, аудио, animation или voice note добавьте в media_urls соответствие file_unique_id → временный HTTP(S) URL.Rekla загрузит все медиа своим ботом прямо во время создания публикации. К моменту сохранения Статья уже содержит наши Telegram file_id; переданные URL не нужны крону и паблишеру.URL вида https://api.telegram.org/file/bot<TOKEN>/... запрещён, потому что раскрывает токен партнёрского бота. Сначала скачайте файл своим ботом и разместите его по безопасному временному URL.Дата публикации: принимается в формате ISO 8601. Таймзона автоматически удаляется (хранится как naive datetime).Пример с фото
Пример с фото
Пример Статьи с фото и кнопкой
Пример Статьи с фото и кнопкой
inline_buttons остаётся верхнеуровневым полем. Если партнёр получил публикацию от своего бота, сюда передаётся message.reply_markup, а в rich_message — message.rich_message.Создание атомарно: если одна публикация из массива не пройдёт валидацию, ни одна не будет создана.
POST /external-api/publications/cancel
Отменить публикацию.204: пустое тело (успешная отмена).
POST /external-api/publications/status
Проверить статус публикации.200:
Возможные значения publish_status
Возможные значения publish_status
Вебхуки
При определённых событиях Rekla отправляет POST-запрос на вашwebhook_url.
Событие api_key.created
Отправляется когда пользователь создаёт API-ключ через команду /start createapikey-<partner>.
Тело запроса:
Проверка подписи
Контакты
Поддержка интеграций: @rekla_support Версия API:1.0.0 | Формат: application/json
Используя API, вы принимаете условия оферты.
