¿Estás configurando el arquetipo? En el futuro, si incluyes la solicitud que estás enviando, será más fácil ayudarte.
El siguiente ejemplo funciona para mí:
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 estás utilizando una clave de API all_users, también debes especificar api-username.
3 Me gusta
¡Gracias, eso lo ha solucionado! No, ya que la documentación de la API no listaba archetype como obligatorio (ni siquiera como “obligatorio para mensajes privados” como lo está target_usernames) ni decía nada sobre su propósito, no lo estaba modificando.
De todos modos, esto ahora funciona. Y como referencia para cualquiera que se encuentre con el mismo problema (especialmente si usa POST), los elementos del cuerpo codificados en JSON en mi solicitud que funciona son:
| clave |
valor |
| raw |
el texto sin procesar del mensaje |
| title |
el título del mensaje/hilo |
| target_usernames |
lista de nombres de usuario separados por comas |
| archetype |
la cadena literal private_message |
Esto se envía como el cuerpo de una solicitud POST a /posts.json con los campos de encabezado personalizados:
| clave |
valor |
| Content-Type |
application/json; charset=UTF-8 |
| Api-Key |
datos de la clave |
| Api-Username |
el nombre de usuario |
2 Me gusta