Перейти к основному содержимому

Отправляйте запросы к API Owncast

В настоящее время мы поддерживаем следующие действия, которые вы можете выполнить через запросы из вашего кода.

СобытиеКонечная точкаОбласть действия
Сообщение системного чата/api/integrations/chat/systemCAN_SEND_SYSTEM_MESSAGES
Стандартное сообщение чата/api/integrations/chat/sendCAN_SEND_MESSAGES
Действие чата/api/integrations/chat/actionCAN_SEND_SYSTEM_MESSAGES
Удалить сообщение чата/api/integrations/chat/messagevisibilityHAS_ADMIN_ACCESS
Получить историю чата/api/integrations/chatHAS_ADMIN_ACCESS
Получить подключенных клиентов/api/integrations/clientsHAS_ADMIN_ACCESS
Установить заголовок потока/api/integrations/streamtitleHAS_ADMIN_ACCESS
системное сообщение для клиента/api/integrations/chat/system/client/{clientId}CAN_SEND_SYSTEM_MESSAGES
Get server status/api/integrations/statusHAS_ADMIN_ACCESS
Get a chat user's details/api/integrations/moderation/chat/user/{userId}HAS_ADMIN_ACCESS

Посетите документацию API для каждой конечной точки, чтобы узнать больше о том, какие значения ожидаются или будут возвращены.

Ваш сервер Owncast будет принимать действия только от запросов с действительным токеном доступа. Следуйте приведенным ниже шагам, чтобы создать токен доступа.

  1. перейдите по адресу /admin/access-tokens на вашем сервере owncast.
  2. Нажмите Создать токен доступа.
  3. Выберите область разрешений, которую вы хотите предоставить этому токену.
  4. Сохраните этот токен доступа.

Ваш код

Отправьте аутентифицированный POST с вашим токеном доступа в заголовке Authorization и JSON телом. Например, чтобы отправить системное сообщение в чате:

const res = await fetch("https://your.owncast.server/api/integrations/chat/system", {
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer " + YOUR_ACCESS_TOKEN,
},
body: JSON.stringify({ body: "this is a system chat message" }),
});

const result = await res.json();
// { "success": true, "message": "sent" }

Проверка отправки сообщений в чате

Измените следующую команду curl, чтобы указать URL вашего сервера и использовать ваш токен аутентификации с доступом "системное сообщение". Это отправит системное сообщение в ваш чат.

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOURAUTHTOKEN" \
-d '{"body": "I am a system message!"}' \
https://your.owncast.server/api/integrations/chat/system

Успешный запрос возвращает 200 с телом JSON:

{ "success": true, "message": "sent" }

Области действия

Каждому токену доступа предоставляется одна или несколько областей действия, которые контролируют, что он может делать. Вышеуказанные конечные точки перечисляют область, требуемую каждой из них.

ОбластьПредоставлять
CAN_SEND_MESSAGESОтправлять стандартные сообщения чата от лица пользователя токена.
CAN_SEND_SYSTEM_MESSAGESОтправлять сообщения чата от имени системы и отправлять действия чата.
HAS_ADMIN_ACCESSAdministrative actions: read chat history, list connected clients, set the stream title, change message visibility, get the server status, and look up a chat user.

Ответы и ошибки

СтатусЗначение
200Запрос выполнен успешно. For the mutation (POST) endpoints the JSON body is the success: true envelope with a short message. The GET endpoints return the domain object instead: the server status, an array of chat messages, an array of connected clients, or a user's details.
400Тело запроса было неправильно сформировано. Тело JSON содержит success: false и message.
401Токен доступа отсутствует, недействителен или не имеет области, требуемой конечной точкой. Тело является простым текстом.
500Сервер столкнулся с ошибкой при обработке запроса.

Owncast не возвращает отдельный 403 за недостаточный доступ. Токен без необходимой области отклоняется с кодом 401, так же как и отсутствующий или недействительный токен.


Improve this page

See something missing or incorrect? Edit this page and improve the documentation for everyone.

Contributors to this documentation
Gabe KangasGabe Kangas
M
mahmed2000
R
Raffael Rehberger