Добавление заголовка авторизации для вебхука?

Я работаю над интеграцией варианта подписки на рассылку 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, однако я не нашёл аналогичного способа для заголовков.

Любая помощь в указании верного направления будет очень ценной. Спасибо!

Хотел зайти и узнать, не знает ли кто-нибудь решения этого вопроса… Мне пока не удалось разобраться. Я временно решил использовать свой плагин для переопределения метода build_webhook_headers в классе Jobs::EmitWebHookEvent, хотя понимаю, что это не идеальное решение.

Заранее спасибо!

Всем привет,

Значит, установить заголовок Authorization для моего вебхука невозможно?

Тогда для чего вообще используются вебхуки? Ощущение, что 99% полезных вебхуков требуют этот заголовок.

:face_with_raised_eyebrow:

У меня есть похожая задача: нужно отправлять данные нового пользователя в список Mailchimp, и я столкнулся с той же проблемой, что описана выше. Однако я нашёл решение/обходной путь для этой проблемы.

Поскольку Mailchimp API использует HTTP Basic аутентификацию при передаче API-ключа в запросе, вы также можете включить ключ в URL, который вы вызываете (вместо более распространённого заголовка Authorization).

В моём случае я установил URL полезной нагрузки вебхука следующим образом:
https://user:[my-api-key]@[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/

Это работает корректно: пользователь теперь успешно добавляется в список Mailchimp.