500 ou 400 ao atualizar o conteúdo de uma postagem usando a API

Estou tentando atualizar o conteúdo de uma postagem usando a API. A documentação em Discourse API Docs menciona que devo usar PUT /posts/:id.json enviando post[raw] como corpo.

Isso resulta em um erro 400 junto com:

errors: [ 'param is missing or the value is empty: post' ]

O erro está reclamando de um parâmetro chamado post, mas substituir post[raw] por post na minha solicitação HTTP resulta em uma resposta de erro 500 Internal Server Error.

O conteúdo da postagem era apenas Comentário editado, então não acho que tenha algo a ver com o conteúdo.

Estou esquecendo algo? A documentação da API está desatualizada?

Estou executando uma instância na nuvem em https://forums.balena.io. Não tenho certeza de qual é a versão do Discourse.

I just realised I was passing a topic id instead of a post id to the API, but the problem still persists. I’m trying to update post 34816, assuming you have access to the cloud instance:

PUT https://forums.balena.io/posts/34816.json

With body:

{
    "post": "Edited comment"
}

And that still results in 500.

Why is my post being flagged as spam? Is this not the right place to submit bugs?

Turns out it works fine if I pass raw instead of post in the request body. The docs could probably be clearer about that :slight_smile:

Glad you got it figured out! I’ve got a bunch of topics that are me taking to myself.

Mostly these are the docs, and they are continually updated: How to reverse engineer the Discourse API :wink:

I generally forget that there are any docs besides just seeing how it works in the browser development tools.