Êtes-vous en train de définir l’archétype ? À l’avenir, si vous incluez la requête que vous envoyez, il sera plus facile de vous aider.
L’exemple suivant fonctionne pour moi :
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 ♥'
Si vous utilisez une clé API all_users, vous devez également spécifier api-username.
3 « J'aime »
Merci, c’est résolu ! Non, comme la documentation de l’API ne listait pas archetype comme obligatoire (pas même « obligatoire pour les messages privés » comme c’est le cas pour target_usernames) et ne mentionnait rien à son sujet, je n’ai pas touché à ce paramètre.
Quoi qu’il en soit, cela fonctionne maintenant. Pour référence de quiconque rencontrerait le même problème (surtout si vous utilisez POST), les éléments du corps encodés en JSON dans ma requête fonctionnelle sont :
| clé |
valeur |
| raw |
le texte brut du message |
| title |
le titre du message/fil |
| target_usernames |
liste de noms d’utilisateurs séparés par des virgules |
| archetype |
la chaîne littérale private_message |
Ceci est envoyé dans le corps d’une requête POST vers /posts.json avec les champs d’en-tête personnalisés suivants :
| clé |
valeur |
| Content-Type |
application/json; charset=UTF-8 |
| Api-Key |
données de la clé |
| Api-Username |
le nom d’utilisateur |
2 « J'aime »