Webhook に認証ヘッダーを追加する方法は?

新しいユーザー登録時に Mailchimp のニュースレター購読オプションを統合する作業を進めており、@pfaffman さんのこのプラグインを使って進捗を上げています: GitHub - pfaffman/discourse-mailchimp-webhook · GitHub

このプラグインは、/admin/api/web_hooks/new に表示される「User Created Event」ウェブフックを正常に追加します。私は Mailchimp API を参考に、ウェブフックのペイロード URL を以下のように設定しました(実際の DC とリスト ID を使用):
https://[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/

新しいユーザーを作成するとウェブフックは正常に発火しましたが、Mailchimp から「API Key Invalid」というレスポンスが返ってきました。build_webhook_headers メソッドのコードを読むと、API キーを「Secret」フィールドに追加しても機能しないようです。なぜなら、それは「X-Discourse-Event-Signature」ヘッダーを作成するだけだからです。それでも試してみましたが、同じレスポンスが返ってきました。

テストとして、手動で build_webhook_headers メソッドを編集し、Mailchimp API が期待する認証ヘッダーを挿入したところ、これで動作しました(成功レスポンスが得られ、新しいメンバーが Mailchimp 側に表示されました):

headers['Authorization'] = 'apikey my-key-here'

もちろん、Discourse を直接編集するのは現実的な解決策ではありませんが、この認証ヘッダーをウェブフックリクエストに含める方法がわからず行き詰まっています。:after_build_web_hook_body を使ってリクエストの本文を拡張する方法はあるようですが、ヘッダーに対して同様の方法は見つかりませんでした。

方向性を示していただければ大変助かります。よろしくお願いいたします。

再度確認させていただき、この質問に対する解決策をご存知の方がいらっしゃるかどうかお聞きしたかったのですが…まだ見つけることができませんでした。当面は、プラグインを使って Jobs::EmitWebHookEvent クラスの build_webhook_headers メソッドを上書きする方法で対応していますが、これは理想的な解決策ではないことは承知しています。

ご協力いただき、ありがとうございます!

こんにちは、皆さん。

私の webhook に Authorization ヘッダーを設定することはできないのでしょうか?

では、webhook は何のために使われるのでしょうか?有用な webhook の 99% はこのヘッダーを必要とするように感じます。

:face_with_raised_eyebrow:

類似の要件で、新しいユーザーの詳細を Mailchimp リストに送信する必要があり、上記と同じ問題に直面しました。しかし、この問題に対する解決策/回避策を見出しました。

Mailchimp API は API リクエストに API キーを提供する際に HTTP Basic 認証 を使用するため、より一般的な Authorization ヘッダーの代わりに、呼び出している URL にキーを含めることもできます。

私の場合、Webhook ペイロード URL を以下のように設定しました:
https://user:[my-api-key]@[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/

これにより、ユーザーが正常に Mailchimp リストに追加されるため、問題なく動作しているようです。