API / anonimizar ou excluir

'lo. Estamos usando o Discourse hospedado com OAuth. De repente, percebemos que, ao processar exclusões, estamos negligenciando a exclusão na nossa instância do Discourse.

Gostaria de poder anonimizar uma conta ou excluir uma conta programaticamente usando a API, mas não vejo uma maneira fácil de fazer isso, já que não sei qual é o ID da conta no Discourse.

Estou perdendo algo óbvio? Alguma sugestão?

Obrigado,

Andrew

Você sabe se os endereços de e-mail coincidem entre seu provedor de identidade OAuth e o Discourse? Se sim, você pode obter o usuário do Discourse com base no endereço de e-mail dele, fazendo uma solicitação de API autenticada para /admin/users/list/all.json?email=<endereço_de_e_mail_do_usuário>. Por exemplo:

curl -X GET "http://localhost:3000/admin/users/list/all.json?email=bob@example.com" \
-H "Api-Key: $api_key" \
-H "Api-Username: system"

Eles devem coincidir, obrigado — foi essa a chamada que me faltava. Verificando.

Também estou interessado em usar uma chamada de API para anonimizar um usuário. Qual é o endpoint da API que você está usando para anonimizar um usuário?

O endpoint da API para anonimização:

Método HTTP: PUT
Endpoint: https://example-community.dev/admin/users/{id}/anonymize


Você pode usar a chamada mostrada acima para obter o valor de {id} se já souber o e-mail do usuário que deseja anonimizar

O endpoint /anonymize foi removido da documentação da API?

Eu estava procurando aqui:

Tanto em users quanto em admin.

Pode ser que ainda não tenha sido adicionado à documentação da API. Vou garantir que seja documentado em breve.

@sarahann a rota /anonymize foi adicionada à documentação da API.

Ufa! Me assustou por um segundo :stuck_out_tongue:

Obrigado pela agilidade nisso!