Cela fait des heures que je cherche comment utiliser l’API REST pour ajouter un événement de calendrier à un sujet et malheureusement, je n’ai pas trouvé de réponse.
J’ai créé un calendrier de catégorie et j’ai pu afficher mon événement de sujet créé manuellement, mais je n’ai pas réussi à automatiser la création d’événements de sujet lorsque j’ajoute un sujet via l’API REST.
J’ai trouvé « discourse-post-events/events.json », mais lorsque j’ai essayé cette API, j’ai obtenu « Not Found ». Je suppose que c’est parce qu’il y a un besoin d’identifiants d’événement et je ne sais pas comment les créer.
Merci pour votre aide, vos conseils et vos commentaires.
Que diriez-vous de simplement créer un sujet ou un message pour l’événement via l’API et d’ajouter les balises [event][/event] au message comme valeur de son paramètre raw ?
L’astuce semble être qu’il doit y avoir un caractère de nouvelle ligne (\\n) entre les balises event d’ouverture et de fermeture.
J’utilise \"Content-Type: multipart/form-data\" dans l’exemple ci-dessous car c’est plus facile que de gérer le JSON depuis la ligne de commande. De plus, $api_key est défini sur la valeur d’une clé d’API réelle :
curl -X POST \"http://localhost:4200/posts.json\" \
-H \"Api-Key: $api_key\" \
-H \"Api-Username: scossar\" \
-H \"Content-Type: multipart/form-data\" \
-F title=\"Can I create an event via the API?\" \
-F category=6 \
-F raw='[event start=\"2024-05-10 20:00\" status=\"public\" timezone=\"America/Vancouver\" end=\"2024-05-10 21:30\" allowedGroups=\"trust_level_0\"]\\n[/event]'
Lorsque je retire la déclaration d’événement et que je mets une description alternative, mon forum est mis à jour, mais dès que je mets la déclaration d’événement, j’obtiens « Entité non traitable ».
Vous devrez échapper les guillemets doubles qui apparaissent dans la chaîne. Par exemple :
"raw": "[event start=\"2024-05-16 19:00\"...\n```
Assurez-vous également d'inclure le caractère de nouvelle ligne (`\n`) entre les balises d'événement.
J’ai pris mes données et j’ai essayé de créer le post en utilisant l’UX. Il m’a dit que le nom de l’événement devait comporter au moins 5 caractères.
Après cela, j’ai essayé votre requête curl @simon et elle a dit quelque chose d’intéressant : Je ne peux pas créer de post car je n’ai pas les droits pour créer des événements…