Я работаю над интеграцией варианта подписки на рассылку Mailchimp при регистрации новых пользователей и уже добился прогресса с помощью этого плагина от @pfaffman: GitHub - pfaffman/discourse-mailchimp-webhook · GitHub
Плагин успешно добавляет вебхук события «Создан пользователь», который отображается по адресу /admin/api/web_hooks/new. Изучив API Mailchimp, я определил, что URL полезной нагрузки для вебхука следует задать следующим образом (с моими реальными DC и ID списка):
https://[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/
Я создал нового пользователя, и вебхук сработал успешно, но получил от Mailchimp ответ «Неверный API-ключ». Прочитав код метода build_webhook_headers, я понял, что добавление API-ключа в поле «Секрет» не сработает, так как это создаёт заголовок «X-Discourse-Event-Signature». Тем не менее, я попробовал, но получил тот же ответ.
В качестве теста я вручную отредактировал метод build_webhook_headers и добавил заголовок авторизации, который ожидает API Mailchimp. Это сработало (я получил ответ об успехе, и новый участник появился в Mailchimp):
headers['Authorization'] = 'apikey my-key-here'
Очевидно, что прямое редактирование Discourse не является жизнеспособным решением, но я застрял на том, как добавить этот заголовок авторизации в запрос вебхука. Похоже, что существует способ дополнить тело запроса с помощью :after_build_web_hook_body, однако я не нашёл аналогичного способа для заголовков.
Любая помощь в указании верного направления будет очень ценной. Спасибо!