Supprimer un chatbot via l'API

Lorsque je rédigeais récemment une commande pour la CLI for Microsoft 365, je souhaitais écrire une commande permettant de supprimer un chatbot. Les chatbots, également connus sous le nom de Power Virtual Agents, font partie de Dynamics 365 Customer Service. Il n’est donc pas surprenant que les APIs sous-jacentes soient basées sur Dynamics 365.

Cela semblait assez simple : appeler la bonne API avec la méthode delete et le tour est joué.

[dynamicsApiUrl]/api/data/v9.0/bots([botId])

Eh bien, pas tout à fait… Lorsque vous exécutez l’API ci-dessus, vous tombez sur une erreur “400 bad request” indiquant : “The bot can not be deleted since it has dependent bot components. Remove the following dependencies before attempting to delete the bot…”.

Une description assez claire ! Un bot est composé de plusieurs composants et ils sont tous liés au bot lui-même. Le bot ne peut donc pas être supprimé tant que les composants liés existent encore.

Vous pourriez supprimer les composants un par un, mais vous savez ce qu’on dit des développeurs… Nous aimons garder les choses simples ! Récupérer tous les composants du bot via une autre API, les parcourir en boucle pour les supprimer un par un, puis enfin supprimer le bot lui-même me semblait un peu excessif. De plus, cela générerait trop d’exécutions d’API à mon goût.

Pour information, la suppression d’un composant de bot individuel peut être obtenue en appelant l’API suivante avec la méthode delete :

[dynamicsApiUrl]/api/data/v9.0/botcomponents([botcomponentId])

Heureusement, il existe une seule API qui effectue tout ce travail côté serveur et nous n’avons qu’à appeler une seule API. Cependant, cette API ne peut pas être appelée avec la méthode delete, mais doit être exécutée avec la méthode post.

[dynamicsApiUrl]/api/data/v9.0/bots([botId])/Microsoft.Dynamics.CRM.PvaDeleteBot?tag=deprovisionbotondelete