curl --request POST \
--header "XF-Api-Key: $FORUM_API_KEY" \
--header 'Accept: application/json' \
--data-urlencode 'node_id=123' \
--data-urlencode 'title=Пример темы' \
--data-urlencode 'message=Пример сообщения' \
--data-urlencode 'sv_prefix_ids[]=1' \
'https://forum.arzguard.com/api/threads/'
{
"success": true,
"thread": {
"thread_id": 123,
"sv_prefix_ids": [
1
]
}
}
Темы
Создать тему
Создаёт тему и первое сообщение в выбранном разделе.
POST
/
api
/
threads
/
curl --request POST \
--header "XF-Api-Key: $FORUM_API_KEY" \
--header 'Accept: application/json' \
--data-urlencode 'node_id=123' \
--data-urlencode 'title=Пример темы' \
--data-urlencode 'message=Пример сообщения' \
--data-urlencode 'sv_prefix_ids[]=1' \
'https://forum.arzguard.com/api/threads/'
{
"success": true,
"thread": {
"thread_id": 123,
"sv_prefix_ids": [
1
]
}
}
Создаёт тему и первое сообщение в выбранном разделе.
Обязательные scopes:
Тело запроса:
Доступ
В каждом запросе обязателен заголовокXF-Api-Key. Примеры используют серверную переменную $FORUM_API_KEY; тип ключа и контекст пользователя определяют доступ к данным.
string
required
Ключ API. Храните его на сервере интеграции; в примере используется переменная окружения.
thread:write.
Особенности
Guard Forum использует MultiPrefix: передавайтеsv_prefix_ids[] либо запасной prefix_id[], а не скалярный prefix_id. В ответе объект темы содержит sv_prefix_ids — массив ID. Подробнее: расширения Guard Forum.
Поля конкретного типа обсуждения принимаются дополнительно и проверяются его обработчиком. Список таких полей зависит от выбранного типа; этот метод не обещает поддержку любого произвольного типа.
Параметры
integer
required
ID раздела, в котором создаётся тема.
string
required
Заголовок темы.
string
required
Текст сообщения. Проверяется правилами и ограничениями выбранного типа содержимого.
string
Идентификатор типа создаваемого обсуждения. Конкретный тип может требовать дополнительные входные поля.
string[]
Массив названий тегов. В форме передавайте повторяющиеся
tags[].string
Значение пользовательского поля с указанным именем. Замените
<name> реальным ключом, например custom_fields[example].boolean
Открыта ли тема для ответов. Изменение применяется при наличии права закрывать и открывать тему.
boolean
Закрепить ли тему в разделе. Применяется при наличии соответствующего права.
string
Ключ подготовленных вложений с типом
post и контекстом context[node_id], равным ID целевого раздела.integer[]
Массив ID префиксов Guard Forum. Передавайте повторяющиеся
sv_prefix_ids[]. Имеет приоритет над запасным параметром prefix_id[]; применяются проверки доступности и лимитов префиксов.integer[]
Запасной массив ID префиксов, если
sv_prefix_ids не передан. Для создания и редактирования темы Guard Forum используйте массив, а не одиночное число.boolean
Особая возможность типа обсуждения: разрешить тип, недоступный для обычного создания. Действует только при явно включённом обходе прав Super user key; в обычном запросе оставьте выключенным.
application/x-www-form-urlencoded. Данные передаются в UTF-8.
Успешный ответ
HTTP200. Пример ниже сокращён и содержит только условные данные. Полные объекты и условия видимости полей описаны в схемах данных.
| Поле | Тип | Описание |
|---|---|---|
success | true | true, если действие выполнено успешно. |
thread | Thread | Объект темы Thread. |
Ошибки
Стандартный ответ содержит массивerrors с code, message и params. Проверяйте HTTP-статус и машинный код; формат и обработка ошибок общие для API.
Документированные для этого метода коды: no_permission. Это не исчерпывающий список возможных ошибок проверки данных и прав.
curl --request POST \
--header "XF-Api-Key: $FORUM_API_KEY" \
--header 'Accept: application/json' \
--data-urlencode 'node_id=123' \
--data-urlencode 'title=Пример темы' \
--data-urlencode 'message=Пример сообщения' \
--data-urlencode 'sv_prefix_ids[]=1' \
'https://forum.arzguard.com/api/threads/'
{
"success": true,
"thread": {
"thread_id": 123,
"sv_prefix_ids": [
1
]
}
}