Baixar histórico de postagens de um usuário via API do Discourse?

Como Jay observou, uma solicitação POST autenticada para /export_csv/export_entity.json pode ser usada para gerar o arquivo. Para isso, você precisa usar uma chave de API Global de Todos os Usuários. Defina o nome de usuário da API da solicitação como o nome de usuário do usuário para o qual deseja criar o arquivo. Você deve fornecer um parâmetro entity na solicitação. O parâmetro entity deve ser definido como user_archive. Com essa abordagem, uma notificação será gerada para o usuário. Para a maioria dos usuários, isso também enviará um e-mail contendo um link de download, mas não acho que isso possa ser garantido — depende de como o usuário configurou suas preferências de e-mail.

Um exemplo de solicitação curl para gerar o arquivo. Substituí $api_key por uma chave de API Global de Todos os Usuários na solicitação:

curl -X POST "http://localhost:3000/export_csv/export_entity.json" -H "Api-Username: Ben" -H "Api-Key: $api_key" -F "entity=user_archive"

Não tenho certeza se existe alguma maneira de gerar o arquivo de forma que permita compartilhá-lo sem que o usuário precise acessar a notificação e clicar no link de download. Talvez seja possível desenvolver uma consulta no Data Explorer que retorne as informações. Você poderia então executar a consulta do Data Explorer via API. A desvantagem dessa abordagem é que, se houver mais de 10.000 linhas de dados retornadas pela consulta, você precisará fazer várias solicitações para obter os dados. Para mais detalhes sobre a abordagem do Data Explorer, consulte: Como executar consultas do Data Explorer com a API do Discourse.

3 curtidas