Как назначить тему через API

Discourse Assign предоставляет следующие API-эндпоинты:

Назначение (PUT /assign/assign.json)

Обязательные параметры:

  • target_id — ID темы или сообщения
  • target_type — либо "Topic", либо "Post"

Плюс один из следующих:

  • username — имя пользователя, которому назначается задача
  • group_name — имя группы, которой назначается задача

Необязательные параметры:

  • note — заметка о назначении
  • status — статус назначения
  • should_notify — отправлять уведомления (по умолчанию: true)

Отмена назначения (PUT /assign/unassign.json)

Обязательные параметры:

  • target_id — ID темы или сообщения
  • target_type — либо "Topic", либо "Post"

Примеры (curl)

# Назначить тему 123 пользователю "john"
curl -X PUT "https://your-discourse.com/assign/assign.json" \
  -H "Api-Key: YOUR_API_KEY" \
  -H "Api-Username: YOUR_USERNAME" \
  -H "Content-Type: application/json" \
  -d '{"target_id": 123, "target_type": "Topic", "username": "john"}'

# Назначить вместо этого группе
curl -X PUT "https://your-discourse.com/assign/assign.json" \
  -H "Api-Key: YOUR_API_KEY" \
  -H "Api-Username: YOUR_USERNAME" \
  -H "Content-Type: application/json" \
  -d '{"target_id": 123, "target_type": "Topic", "group_name": "support-team"}'

Примечания

  • Пользователь API должен иметь права на назначение (входить в группу, которой разрешено назначение)
  • Также можно назначать отдельные сообщения, используя target_type: "Post" с ID сообщения

@opcourdis пример на Node.js выше выглядит правильно! :+1: