Je travaille sur l’intégration d’une option d’abonnement à la newsletter Mailchimp lors de l’inscription de nouveaux utilisateurs, et j’ai fait des progrès en utilisant ce plugin de @pfaffman GitHub - pfaffman/discourse-mailchimp-webhook · GitHub
Le plugin ajoute avec succès un webhook « Événement de création d’utilisateur » qui apparaît à l’adresse /admin/api/web_hooks/new. J’ai déterminé, en me basant sur l’API Mailchimp, comment définir l’URL de charge utile pour le webhook de cette manière (avec mon DC et mon identifiant de liste réels) :
https://[mon-dc].api.mailchimp.com/3.0/lists/[mon-id-de-liste]/members/
J’ai créé un nouvel utilisateur et le webhook s’est déclenché avec succès, mais j’ai reçu une réponse « Clé API invalide » de la part de Mailchimp. En examinant le code de la méthode build_webhook_headers, il ne semblait pas que l’ajout de la clé API au champ « Secret » fonctionnerait, car cela génère un en-tête « X-Discourse-Event-Signature ». Je l’ai tout de même essayé, mais j’ai obtenu la même réponse.
À titre de test, j’ai modifié manuellement la méthode build_webhook_headers pour y insérer l’en-tête d’autorisation attendu par l’API Mailchimp, et cela a fonctionné (j’ai reçu une réponse de succès et le nouveau membre est apparu côté Mailchimp) :
headers['Authorization'] = 'apikey ma-clé-ici'
Bien sûr, modifier Discourse directement n’est pas une solution viable, mais je suis bloqué quant à la manière d’insérer cet en-tête d’autorisation dans ma requête webhook. Il semble exister un moyen d’enrichir le corps de la requête avec :after_build_web_hook_body, mais je n’ai pas trouvé de méthode similaire pour l’en-tête.
Toute aide pour m’orienter dans la bonne direction serait grandement appréciée. Merci !