Ontem, criei um tópico (agora fechado) sobre como chamar o plugin Merge Users programaticamente, e Rafael gentilmente me indicou as notas de lançamento, que mencionam que o plugin agora possui uma interface gráfica (Discourse 2.5.0.beta3 Release Notes). Infelizmente, minhas habilidades com a API do Discourse não são suficientes para traduzir isso em uma chamada de API. Isso é algo que precisaremos fazer a partir do nosso aplicativo com bastante regularidade. Poderia me ajudar, por favor?
Obrigado pela dica! Demorei um pouco para conseguir criar alguns usuários no meu sandbox do Discourse, mas consegui fazer isso hoje. Peguei o que aprendi no painel Network das ferramentas de desenvolvedor e tentei replicar via Postman. Estes são os valores:
Api-Key: {criar via a interface}
Api-Username: system
context: /admin/users/{source user ID}/{source username}
target_username: {nome de usuário de destino}
A resposta foi:
{
"errors": [
"A URL ou recurso solicitado não pôde ser encontrado."
],
"error_type": "not_found"
}
Sim, tanto o usuário de origem quanto o de destino são usuários ativos. Se eu remover os cabeçalhos, recebo uma página HTML dizendo: “Ops! Essa página não existe ou é privada.” A parte de “página não existe” é compreensível para um erro 404, mas não tenho certeza do que “privada” implica aqui.
Estou migrando algumas listas de e-mail para uma instância do Discourse. Como muitas pessoas usavam e-mails diferentes, a transferência cria muitos usuários em estágio por pessoa real. Gostaria de automatizar a mesclagem de usuários via API.