Aggiungere gruppi e categorie (con sicurezza) con WP-Discourse o l'API?

Sì, è possibile. Puoi effettuare qualsiasi richiesta API a Discourse da WordPress utilizzando il metodo di utilità discourse_request, ad esempio:

use WPDiscourse\Utilities\Utilities as DiscourseUtilities;
$args =  array(
   "body" => "",
   "type" => "post"
);
$response = DiscourseUtilities::discourse_request( $path, $args );

Questo formatterà correttamente la richiesta e utilizzerà la chiave API e l’utente che hai fornito nelle impostazioni di WP Discourse. Avrai bisogno di una chiave globale per le azioni a cui ti riferisci (se stai usando la stessa chiave anche per la normale funzionalità di wp discourse).

Creazione di un gruppo

L’endpoint che desideri è questo: Discourse API Docs. Non c’è un elenco completo dei parametri nella documentazione API, ma li troverai qui: discourse/app/controllers/admin/groups_controller.rb at main · discourse/discourse · GitHub

Creazione di una categoria

L’endpoint che desideri è questo: Discourse API Docs. Allo stesso modo, l’elenco completo dei parametri è qui: discourse/app/controllers/categories_controller.rb at main · discourse/discourse · GitHub

Nota che le “impostazioni di sicurezza” sono gestite tramite il parametro permissions. Devi solo fornirgli un oggetto con i nomi dei gruppi come chiavi e interi dei livelli di permesso come valori, ad esempio:

{
  "cohort1": 2,
  "staff": 1
}

L’elenco degli interi dei livelli di permesso si trova qui: discourse/app/models/category_group.rb at main · discourse/discourse · GitHub