Impossible de comprendre l'API pour ajouter et supprimer des propriétaires de groupe

Je souhaite ajouter et supprimer des propriétaires de groupe à l’aide de l’API. Ceci n’est pas documenté dans la documentation de l’API.

En suivant les appels lors de la connexion en tant qu’administrateur, rendre un utilisateur propriétaire est :

PUT groups/<gid>/owners avec une charge utile de usernames=nikkilocke (notez l’absence d’admin !)

Supprimer un utilisateur des propriétaires est :

DELETE admin/groups/<gid>/owners avec une charge utile de user_id=<uid>

L’étude du code source montre :


      def group_add_owners(group_id, args)
        args = API.params(args).required(:usernames).to_h
        put("/admin/groups/#{group_id}/owners.json", group: args)
      end

      def group_remove_owners(group_id, args)
        args = API.params(args).required(:usernames).to_h
        delete("/admin/groups/#{group_id}/owners.json", group: args)
      end

et ce code ne semble pas avoir changé depuis 2023.

J’exécute Discourse 3.4.7, et le point d’entrée pour ajouter des propriétaires dans le code source renvoie une erreur 404.

URL que j’ai essayées :

PUT /groups/384/owners usernames=nikkilocke OK

PUT /admin/groups/384/owners group[usernames]=nikkilocke Erreur 404

DEL /admin/groups/384/owners group[usernames]=nikkilocke OK

DEL /admin/groups/384/owners user_id = 12 OK

Quelqu’un peut-il me dire ce qui se passe et quelles URL utiliser pour cela, s’il vous plaît ?

Je suppose que c’est une faute de frappe et non la cause de votre erreur ?

2 « J'aime »

La meilleure et la plus sûre documentation pour l’API est Ingénierie inverse de l’API Discourse

Êtes-vous sûr d’avoir une clé d’API valide et de la transmettre correctement ? Une erreur 404 est attendue si vous n’êtes pas correctement authentifié.

Êtes-vous en mesure d’effectuer des requêtes qui nécessitent une autorisation ?

Comme je l’ai dit dans le message original, 3 des 4 possibilités fonctionnent bien (avec la même clé API).

1 « J'aime »

Ah. Désolé. Le « OK » à la fin de la ligne était subtil pour moi.

Quand j’ajoute un propriétaire, je vois cette requête PUT https://example.com/groups/75/owners.json avec usernames= pfaffman123 dans les données du formulaire.

Avez-vous suivi les étapes d’ingénierie inverse que j’ai liées ?

@Nikki_Locke avez-vous pu résoudre votre problème ?

Ce sujet a été automatiquement fermé après 6 jours. Les nouvelles réponses ne sont plus autorisées.