Maintenant qu'il existe un appel d'API pour Merge Users, comment l'appeler ?

Bonjour,

J’ai ouvert un sujet hier (maintenant fermé) concernant l’appel programmatique du plugin Merge Users. Rafael m’a aimablement renvoyé aux notes de version, qui mentionnent que le plugin dispose désormais d’une interface utilisateur (Discourse 2.5.0.beta3 Release Notes). Malheureusement, mes compétences avec l’API Discourse ne me permettent pas de traduire cela en un appel API. C’est quelque chose que nous devrons faire depuis notre application de manière assez régulière. Pouvez-vous m’aider, s’il vous plaît ?

Merci d’avance,

Mark Pemburn
Blue Ocean Ideas

Le bouton est visible en bas de la page d’administration de l’utilisateur.

image

Si vous ouvrez les outils de développement de votre navigateur pendant que vous l’utilisez, vous verrez la requête à effectuer.

Bonjour Kane,

Merci pour l’astuce ! Il m’a fallu un certain temps pour parvenir à créer quelques utilisateurs dans mon Discourse bac à sable, mais j’y suis parvenu aujourd’hui. J’ai repris ce que j’avais pu extraire du panneau Réseau des outils de développement et j’ai tenté de le reproduire via Postman. Voici les valeurs :

Méthode : POST
Point de terminaison : https://my-discourse-sandbox/admin/users/{source user ID}/merge.json

En-têtes :

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

Paramètres :

Api-Key: {à créer via l'interface utilisateur}
Api-Username: system
context: /admin/users/{source user ID}/{source username}
target_username: {nom d'utilisateur cible}

La réponse était :

    {
        "errors": [
            "L'URL ou la ressource demandée est introuvable."
        ],
        "error_type": "not_found"
    }

Avez-vous une idée de ce que je fais de travers ?

Tout semble correct d’un coup d’œil. Avez-vous vérifié que la valeur target_username existe ?

Kane,

Oui, l’expéditeur et le destinataire sont tous deux des utilisateurs actuels. Si je supprime les en-têtes, je reçois une page HTML indiquant : « Oups ! Cette page n’existe pas ou est privée. » La mention « cette page n’existe pas » est compréhensible pour une erreur 404, mais je ne suis pas sûr de ce que signifie « privée » dans ce contexte.

Mark

@mpemburn avez-vous eu du succès avec ceci ?

Je migre certaines listes de diffusion vers une instance Discourse. Comme beaucoup de personnes utilisaient des e-mails différents, le transfert crée de nombreux utilisateurs staged par personne réelle. J’aimerais automatiser la fusion des utilisateurs via l’API.