Вы задаете архетип? В будущем, если вы включите отправляемый запрос, нам будет проще помочь вам.
Следующий пример работает у меня:
curl https://$DISCOURSE_HOSTNAME/posts \
-H "api-key: $DISCOURSE_API_KEY" \
--data 'title=Testing PM creation&archetype=private_message&target_recipients=user1,user2' \
--data-urlencode 'raw=PM body, long enough to meet site rules & may be complex ♥'
Если вы используете API-ключ all_users, вам также необходимо указать api-username
Спасибо, проблема решена! Нет, так как в документации к API поле archetype не было указано как обязательное (даже не «обязательно для личных сообщений», как target_usernames), и не было никаких пояснений о его назначении, я не стал его трогать.
В любом случае, теперь всё работает. Для справки всем, кто столкнётся с той же проблемой (особенно при использовании POST), вот элементы тела запроса в формате JSON, которые использовались в моём рабочем запросе:
| ключ |
значение |
| raw |
исходный текст сообщения |
| title |
заголовок сообщения/ветки |
| target_usernames |
список имён пользователей через запятую |
| archetype |
буквальная строка private_message |
Это отправляется как тело POST-запроса к /posts.json с пользовательскими заголовками:
| ключ |
значение |
| Content-Type |
application/json; charset=UTF-8 |
| Api-Key |
данные ключа |
| Api-Username |
имя пользователя |