Sto lavorando all’integrazione di un’opzione di iscrizione alla newsletter di Mailchimp nelle registrazioni di nuovi utenti e ho fatto progressi utilizzando questo plugin di @pfaffman GitHub - pfaffman/discourse-mailchimp-webhook · GitHub
Il plugin aggiunge con successo un webhook di “Evento Utente Creato” che appare in /admin/api/web_hooks/new e ho capito dall’API di Mailchimp come impostare l’URL del payload per il webhook in questo modo (con il mio DC e l’ID della lista reali):
https://[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/
Ho creato un nuovo utente e il webhook è stato attivato correttamente, ma ho ricevuto una risposta “API Key Invalid” da Mailchimp. Leggendo il codice del metodo build_webhook_headers, non sembrava che aggiungere la chiave API al campo “Secret” potesse funzionare, poiché ciò crea un’intestazione “X-Discourse-Event-Signature”, anche se l’ho provato comunque e ho ottenuto la stessa risposta.
Come test, ho modificato manualmente il metodo build_webhook_headers e inserito l’intestazione di autorizzazione che l’API di Mailchimp si aspetta, e questo ha funzionato (ho ricevuto una risposta di successo e il nuovo membro è apparso sul lato di Mailchimp):
headers['Authorization'] = 'apikey my-key-here'
Ovviamente modificare direttamente Discourse non è una soluzione praticabile, ma ora sono bloccato su come inserire questa intestazione di autorizzazione nella mia richiesta webhook. Sembra esserci un modo per arricchire il corpo della richiesta con :after_build_web_hook_body, anche se non ho trovato un metodo simile per l’intestazione.
Qualsiasi aiuto per indicarmi la direzione giusta sarebbe molto apprezzato. Grazie!