Adicionar um cabeçalho de autorização para um webhook?

Estou trabalhando na integração de uma opção de assinatura de newsletter do Mailchimp nos registros de novos usuários e fiz progresso usando este plugin do @pfaffman GitHub - pfaffman/discourse-mailchimp-webhook · GitHub

O plugin adiciona com sucesso um webhook de “Evento de Usuário Criado” que aparece em /admin/api/web_hooks/new, e eu verifiquei na API do Mailchimp que a URL de carga útil para o webhook deve ser configurada assim (com meu DC e ID de lista reais):
https://[meu-dc].api.mailchimp.com/3.0/lists/[meu-id-de-lista]/members/

Criei um novo usuário e o webhook foi acionado com sucesso, mas recebi uma resposta “Chave de API Inválida” do Mailchimp. Ao ler o código do método build_webhook_headers, não parecia que adicionar a chave de API ao campo “Segredo” funcionaria, pois isso cria um cabeçalho “X-Discourse-Event-Signature”, embora eu tenha tentado de qualquer forma e continue recebendo a mesma resposta.

Como teste, editei manualmente o método build_webhook_headers e inseri o cabeçalho de autorização que a API do Mailchimp espera, e isso funcionou (recebi uma resposta de sucesso e o novo membro apareceu no lado do Mailchimp):

headers['Authorization'] = 'apikey minha-chave-aqui'

Obviamente, editar o Discourse diretamente não é uma solução viável, mas estou travado agora sobre como incluir esse cabeçalho de autorização na minha solicitação de webhook. Parece haver uma maneira de aumentar o corpo da solicitação com :after_build_web_hook_body, embora eu não tenha encontrado uma maneira semelhante para o cabeçalho.

Qualquer ajuda para me orientar na direção certa será muito apreciada. Obrigado!

Gostaria de dar um retorno e ver se alguém sabe uma solução para essa pergunta… Ainda não consegui resolver isso. Por enquanto, recorri ao uso do meu plugin para sobrescrever o método build_webhook_headers da classe Jobs::EmitWebHookEvent, embora eu saiba que essa não seja uma solução ideal.

Obrigado desde já!

Olá a todos,

Então, não é possível definir um cabeçalho Authorization no meu webhook?

Para que servem os webhooks, então? Parece que 99% dos webhooks úteis exigiriam esse cabeçalho.

:face_with_raised_eyebrow:

Tenho um requisito semelhante onde preciso enviar os detalhes do novo usuário para uma lista do Mailchimp, e esbarrei no mesmo problema descrito acima. Mas encontrei uma solução/alternativa para esse problema.

Como a API do Mailchimp usa autenticação básica HTTP ao fornecer a chave da API junto com sua solicitação, você também pode incluir a chave na URL que está chamando (em vez do cabeçalho Authorization, mais comum).

Então, no meu caso, configurei a URL do payload do webhook para:
https://user:[minha-chave-api]@[meu-dc].api.mailchimp.com/3.0/lists/[minha-id-da-lista]/members/

E isso parece funcionar bem, pois o usuário agora é adicionado com sucesso à lista do Mailchimp.