Agora que há uma chamada de API para Merge Users, como chamá-la?

Olá,

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?

Agradeço antecipadamente,

Mark Pemburn
Blue Ocean Ideas

O botão é visível na parte inferior da página de administração do usuário.

image

Se você abrir as ferramentas de desenvolvedor do navegador enquanto o usa, verá a solicitação que precisa ser feita.

Olá Kane,

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:

Método: POST
Endpoint: https://my-discourse-sandbox/admin/users/{source user ID}/merge.json

Cabeçalhos:

Content-Type: multipart/form-data
Accept: application/json

Parâmetros:

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"
    }

Tem alguma ideia do que estou fazendo de errado?

Tudo parece correto de relance. Você verificou se o valor de target_username existe?

Kane,

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.

Mark

@mpemburn você teve algum sucesso com isso?

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.