새 사용자 등록 시 Mailchimp 뉴스레터 구독 옵션을 통합하는 작업을 진행 중이며, @pfaffman 님의 이 플러그인(GitHub - pfaffman/discourse-mailchimp-webhook · GitHub)을 사용하여 진전을 이루었습니다.
이 플러그인은 /admin/api/web_hooks/new에 표시되는 “User Created Event” 웹훅을 성공적으로 추가해 주었고, Mailchimp API 문서를 참고하여 웹훅의 Payload URL을 다음과 같이 설정했습니다(실제 DC와 리스트 ID로 대체):
https://[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/
새 사용자를 생성했을 때 웹훅은 성공적으로 트리거되었지만, Mailchimp에서 “API Key Invalid” 응답을 받았습니다. build_webhook_headers 메서드의 코드를 읽어 보니, “Secret” 필드에 API 키를 추가하는 방식은 “X-Discourse-Event-Signature” 헤더를 생성하므로 작동하지 않을 것 같았지만, 그래도 시도해 보았으나 동일한 응답을 받았습니다.
테스트를 위해 build_webhook_headers 메서드를 수동으로 수정하여 Mailchimp API가 기대하는 인증 헤더를 삽입해 보았고, 이 방법은 작동했습니다(성공 응답을 받았고, Mailchimp 측에 새 멤버가 나타났습니다):
headers['Authorization'] = 'apikey my-key-here'
물론 Discourse를 직접 수정하는 것은 현실적인 해결책이 아니지만, 이제 웹훅 요청에 이 인증 헤더를 포함하는 방법에 대해 막혀 있습니다. :after_build_web_hook_body를 사용하여 요청 본문을 수정하는 방법은 있는 것 같지만, 헤더에 대해서는 유사한 방법을 찾지 못했습니다.
올바른 방향으로 이끌어 주실 수 있다면 큰 도움이 될 것입니다. 감사합니다!