Je dois créer des groupes en masse en utilisant l'API

Salut tout le monde,

Je dois créer plusieurs groupes en utilisant l’API, mais le JSON n’accepte pas un tableau de plusieurs valeurs, cela ne fonctionne que si je crée un groupe par appel API.

Idéalement, je voudrais lancer un seul appel de création et avoir les noms sous forme de tableau JSON, mais cela déclenche le statut :
500 (Erreur interne du serveur)

Je m’attendais à ce que ce qui suit fonctionne, mais ce n’est pas le cas - aidez-moi ! Nous parlons de plus de 200 groupes, j’utilise POST pour https://{defaultHost}/admin/groups.json exactement comme la documentation l’exige.

{
  "group": [
    {
      "name": "X"
    },
    {
      "name": "Y"
    },
    {
      "name": "Z"
    }
]
}

Il me semble qu’il s’appelle createGroup et non createGroups. Il est indiqué qu’il « Crée un groupe » et non « Crée autant de groupes que vous le souhaitez ».
Vous devrez parcourir vous-même les valeurs et l’appeler pour chaque groupe que vous souhaitez ajouter. Vous voudrez probablement insérer un délai ou intégrer du code qui retentera lorsque vous atteindrez les limites de débit.

1 « J'aime »

@pfaffman Cool, Merci, ça a du sens !

~B

1 « J'aime »

@pfaffman Cela a fonctionné comme prévu en écrivant un petit script, mais je rencontre maintenant un autre problème. L’API n’autorise que « name » et non « full name », je n’ai donc aucun moyen de renseigner « full name » en utilisant la méthode create. Le seul champ autorisé, « name », n’autorise pas non plus les espaces, j’ai donc une tonne de groupes avec un « full name » vide et « name » qui doit utiliser « _ ».

Idéalement, j’aimerais pouvoir fournir « full name » en plus de « name » lors de la création de groupes à l’aide de l’API ?

Merci
Boyan

Cela n’a pas de sens, car l’API est ce que le frontend utilise pour créer des groupes. Puisqu’il est possible de créer des noms complets dans l’interface utilisateur, vous pouvez les créer dans l’API.

C’est ainsi que fonctionnent les noms de groupe.

Veuillez m’indiquer où je dois spécifier le nom complet ? Je suis respectueusement en désaccord avec le fait que l’API soit utilisée par le front-end, car il est clair que je peux modifier le nom complet à l’aide du front-end, mais ici je ne vois pas le nom complet ?

Désolé. Je pensais vous avoir dirigé vers Ingénierie inverse de l’API Discourse. Je recommande soit d’utiliser la méthode d’ingénierie inverse, soit de regarder directement le code source. Je ne pense pas que quiconque développe activement Discourse utilise ces documents, donc je ne leur fais pas confiance pour être complets ou à jour.