Я уже несколько часов ищу информацию о том, как использовать REST API для добавления события календаря к теме, но, к сожалению, так и не нашёл ответа.
Я создал календарь категории и могу отображать события темы, созданные вручную, но не смог автоматизировать создание события темы при добавлении темы через REST API.
Я нашёл endpoint “discourse-post-events/events.json”, но при попытке использовать этот API получаю ошибку “Not Found”. Предполагаю, что это связано с необходимостью наличия идентификаторов событий, а я не знаю, как их создавать.
Как насчёт того, чтобы просто создать тему или пост для события через API и добавить теги [event][/event] в пост как значение его параметра raw?
Секрет, кажется, в том, что между открывающим и закрывающим тегами event должен быть символ новой строки (\n).
В примере ниже я использую "Content-Type: multipart/form-data", потому что с ним проще работать из командной строки, чем с JSON. Также переменная $api_key установлена в значение действительного API-ключа:
curl -X POST "http://localhost:4200/posts.json" \
-H "Api-Key: $api_key" \
-H "Api-Username: scossar" \
-H "Content-Type: multipart/form-data" \
-F title="Можно ли создать событие через API?" \
-F category=6 \
-F raw='[event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event]'
Если я убираю объявление события и вставляю альтернативное описание, мой форум обновляется. Но как только я добавляю объявление события, возникает ошибка «Unprocessable Entity».
Я загрузил свои данные и попытался создать пост через интерфейс. Система сообщила, что название события должно содержать минимум 5 символов.
После этого я попробовал ваш запрос curl @simon, и он выдал интересную информацию: я не могу создать пост, потому что у меня нет прав на создание событий…