Перейти к содержимому
Influence
Esc
↑↓навигация↵открыть⌘Jпредпросмотр
На этой странице

HTTP API

Проходите аутентификацию, находите инструменты и подтверждайте изменения через существующий HTTP API.

Отправляйте запросы API продукта на доверенный адрес Influence, например https://influence.so. Домен документации не принимает запросы API продукта. Используйте точные пути ниже без параметров строки запроса.

Создать ключ API с ограниченными правами

В настройках Influence откройте «Приложения и автоматизации → Ключи API». Выберите нужные разрешения и срок действия. Сохраните ключ, который показывается только 1 раз, в хранилище секретов как PUBLISH_API_TOKEN. Передавайте его в Authorization: Bearer …; никогда не вставляйте в URL, тело запроса или чат. Отзовите ключ, когда он больше не нужен.

Найти инструменты и получить список аккаунтов

Задайте для PUBLISH_API_URL доверенный адрес. В этих примерах предполагается, что процессу уже доступен PUBLISH_API_TOKEN. Для accountList нужно разрешение integrations:read; используйте его поля пагинации, чтобы получить следующие страницы.

export PUBLISH_API_URL="https://influence.so"
curl "$PUBLISH_API_URL/api/v1/tools" \
  -H "Authorization: Bearer $PUBLISH_API_TOKEN"

curl "$PUBLISH_API_URL/api/v1/tools/accountList/call" \
  -H "Authorization: Bearer $PUBLISH_API_TOKEN" \
  -H 'Content-Type: application/json' \
  --data '{"input":{}}'

Пути запросов

Метод Путь Назначение
GET /api/v1/tools Получить список инструментов, доступных этим учётным данным.
POST /api/v1/tools/{tool}/call Вызвать инструмент без подтверждения, включая продолжение уже разрешённых загрузок.
POST /api/v1/tools/{tool}/prepare Подготовить точное изменение без его выполнения.
POST /api/v1/tools/{tool}/confirm Подтвердить подготовленное изменение.
POST /api/v1/media/import Подтвердить подготовленную загрузку небольшого изображения в двоичном виде.

Запросы инструментов в JSON используют Content-Type: application/json и тело, содержащее только input: {"input":{…}}. Получайте схему входных данных каждого инструмента из актуального каталога инструментов.

Подготовить и подтвердить действия

Используйте поле confirmation в каталоге: чтение обычно не требует подтверждения, но обновление аналитики требует его, хотя относится к чтению. Получение данных части загрузки, завершение и отмена продолжают уже разрешённую загрузку через /call.

  1. Отправьте точные данные действия в /prepare. Успешный ответ содержит status: "confirmation_required", confirmationCapability, expiresAt, inputDigest и необязательное поле summary.
  2. До истечения срока отправьте те же входные данные в /confirm. Поместите полученное значение подтверждения в X-Publish-Confirmation, а новый ключ, созданный вызывающей стороной, — в Idempotency-Key.
  3. Храните входные данные, значение подтверждения и ключ вместе. После прерванного подтверждения или ответа с неясным результатом повторно используйте все 3 значения для того же запроса. Не создавайте новую подготовку для восстановления после неясного результата.

Ключ идемпотентности содержит 16–200 символов из A–Z, a–z, 0–9, ., _, : и -. Значения подтверждения — секреты с непрозрачным содержимым. Ключ, отправленный в /call или /prepare, не резервирует подтверждённое изменение.

Подтверждение на уровне протокола отдельно от одобрения публикации. Для публикации или изменения расписания покажите все актуальные материалы для проверки: аккаунты, текст, настройки, реальные превью медиа или ссылки на них, запланированное время и часовой пояс. Клиент может сообщить о новом явном одобрении человеком через approval: "approved" для подходящих проверок текстовых публикаций, изображений и видео в соцсетях; он не должен придумывать согласие или считать подготовку одобрением. Influence фиксирует это как одобрение, о котором сообщил клиент. Поддерживаемая встроенная карточка или проверка после входа в аккаунт фиксирует собственное действие человека.

TikTok Direct принимает явный выбор и согласие в чате через процесс проверки. Сохраните все выбранные параметры через campaignReview, затем получите новое одобрение обновлённой проверки до выполнения. Карточка проверки необязательна. Обычное планирование через API/CLI не расходует лимит планирования с ИИ; отдельный лимит MCP и Influence IQ применяется к этим сценариям, даже если сохранённую проверку ИИ позже одобряют в Influence. Другие требования тарифа и платформы по-прежнему действуют. Прочитайте сохранённый результат перед дальнейшими действиями; needs_review требует выяснить результат, а не отправлять снова.

Обрабатывать ошибки и неясные результаты

Проверяйте и статус HTTP, и тело ответа. Успешные инструменты возвращают {"ok":true,"toolName":"…","output":{…}}. Ошибки инструментов возвращаются как {"ok":false,"toolName":"…","error":{"code":"…","message":"…","retryable":false}} и могут приходить со статусом HTTP 200. Ошибки протокола используют {"error":{"code":"…","message":"…","retryable":false}} без ok и toolName.

Статус 401 означает, что нужна аутентификация; проверьте срок действия и отзыв доступа. Отсутствующее разрешение нужно предоставить, а не повторять запросы. Статус 503 может означать, что сервис недоступен или другой запрос планирования обновляет рабочее пространство. Следуйте полученному коду ошибки и указаниям по повторной попытке; не повторяйте действие публикации автоматически. Тайм-аут не доказывает, что изменение не выполнено: сохраните данные подтверждения и прочитайте текущий статус перед повторной отправкой. Принято, запланировано и опубликовано — разные результаты.

Загрузить медиа

Для локальных файлов предпочитайте uploadMedia из SDK или media:upload из CLI. Они используют те же инструменты multipart-загрузки и сохраняют стабильный clientKey для повторных попыток. Прикреплять можно только готовый результат с assetId. Для разрешённой HTTPS-ссылки используйте mediaImport с url и необязательным name. Настоящие ссылки на файлы среды используют отдельный объект file; для публичного URL не нужен выдуманный ID файла среды. Локальный путь к файлу не является URL для скачивания. См. ограничения медиа: импорт видео по HTTPS ограничен 250 МиБ, даже если более крупный готовый MP4 можно загрузить напрямую.

POST /api/v1/media/import поддерживает существующий способ передачи небольших изображений: подготовьте mediaImport с точным дескриптором загрузки, затем отправьте те же байты как application/octet-stream. Передайте X-Publish-Confirmation, Idempotency-Key и X-Publish-Upload с дескриптором JSON в кодировке URI. Байты должны совпадать с указанными размером и SHA-256. Для этого способа действует ограничение 3 МиБ; для более крупных поддерживаемых файлов используйте вспомогательный метод загрузки. Загрузка никогда не одобряет публикацию.

Откройте справочник API или скачайте спецификацию OpenAPI.