Stai impostando l’archetipo? In futuro, se includi la richiesta che stai inviando, sarà più facile aiutarti.
Il seguente esempio funziona per me:
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 ♥'
se stai utilizzando una chiave API all_users, devi anche specificare api-username
3 Mi Piace
Grazie, è stato risolto! No, dato che la documentazione dell’API non elencava archetype come obbligatorio (nemmeno come “obbligatorio per i messaggi privati” come lo è target_usernames) e non diceva nulla a riguardo, non ci ho messo mano.
Comunque, ora funziona. Per riferimento di chiunque incontri lo stesso problema (specialmente se si usa POST), gli elementi del corpo codificati in JSON nella mia richiesta funzionante sono:
| chiave |
valore |
| raw |
il testo grezzo del messaggio |
| title |
il titolo del messaggio/thread |
| target_usernames |
elenco di nomi utente separati da virgola |
| archetype |
la stringa letterale private_message |
Questo viene inviato come corpo di una POST a /posts.json con i seguenti campi di intestazione personalizzati:
| chiave |
valore |
| Content-Type |
application/json; charset=UTF-8 |
| Api-Key |
dati della chiave |
| Api-Username |
il nome utente |
2 Mi Piace