PatreonのWebhookが失敗しています

@Falco さんや他の方のお力をお借りできるかと思い、投稿します。

最近 Patreon を使い始め、Digital Ocean の Droplet に Discourse サーバーをセットアップしました。また、discourse-patreon プラグインをインストールし、このチュートリアルに従ってすべてのキーなどを設定しました。「Plugin > Patreon > Filters」ページにある「Update Patreon Data & Sync Groups」ボタンをクリックすると正常に動作し、すべてのティアが利用可能で、それらをすべて Discourse グループなどに割り当てています。

最初はすべて問題なさそうでしたが、その後 Patreon サーバーから以下のメールを受け取りました。

WebHook POST が https://discourse.martinbaileyphotography.com/patreon/webhook に対して失敗したため、それ以降のイベント送信を一時停止しました。

API 1(この投稿で指定されている通り)と API 2(キーとシークレットをそれぞれ変更)の両方でクライアントを設定し、非推奨イベントの上位 3 つと下位 6 つを両方の API で試してみましたが、動作する組み合わせを見つけることができませんでした。

Discourse のログには、以下のエラーメッセージが記録されていました。

(patreon) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected

Digital Ocean に確認したところ、POST リクエストはブロックされておらず、彼らのシステムにこのような問題が発生する理由も考えられないとのことでした。そのため、行き詰まっています。この問題を解決するための有用な情報が見つからないため、ここで(また Patreon フォーラムでも)投稿し、誰かに心当たりがあることを願っています。この問題を修正する方法や、さらにトラブルシューティングを行うために確認すべき点について、ご助言いただけないでしょうか。

ご協力いただける方、何卒よろしくお願いいたします。

Martin Bailey

「いいね!」 2

ウェブフックを設定する際は、Configure Patreon integration with Discourse で説明されているように、廃止されたもののみを有効にし、サイト設定でシークレットを設定してください。

それでも失敗する場合は、Patreon側の問題である可能性があります。失敗の詳細なログについて、Patreonのサポートに問い合わせることはできますか?

「いいね!」 2

Falcoさん、ありがとうございます。
お尋ねしてみます。彼らはすでにAPIのサポートは提供していないと私に伝えてきました。残念です。これを始めたとき、Patreonが不十分な会社であることに気づきませんでした。

わかりました、非推奨のオプションを使用します。API v1、webhookも使用すべきですか?当初は両方試しましたが、数週間試していません。

ご協力ありがとうございます。

「いいね!」 4

はい、v1バージョンを使用してください。

「いいね!」 3

Falcoさん、ありがとうございます。すべて元に戻し、APIキーとシークレットをすべて変更しました。

しかし、マニュアルテストではステータスコード200が返されており、呼び出しは正常に行われているようです。また、今朝Discourse / Patreonプラグインを確認したところ、データが5時間前に同期されたと表示されていました。5時間前は寝ていたので、何かが起こっているはずですが、それでも「Webhook Paused」という赤いメッセージが表示され、[Resume]ボタンをクリックすると別のエラーが発生します。

いずれにせよ、Patreonチームに詳細なログをリクエストして、彼らの意見を聞いてみます。

改めて、ご協力ありがとうございました。

「いいね!」 2

Falco様

受信トレイに溜まっていたPatreonサポートからの返信を見つけましたが、ログは提供できないとのことでした。また、コミュニティサポートフォーラムも閉鎖されたようです。

いくつかの同期は機能しており、睡眠中にシステムが同期されたことを示すメッセージも表示されていますが、新規のPatreonが貢献を行った際に自動的に追加されないというエラーは依然として発生しています。私は、新規Patreonのティアに応じて様々なカテゴリへのアクセス権を付与する招待状を作成することで、この問題を回避していますが、手動で送信する必要があるため、あまりスムーズではありません。また、貢献をやめた人々が私のDiscourseコミュニティから削除されない可能性も懸念しており、現在、少数のPatreonしかいないため確認できますが、Patreonプログラムを推進して多くの参加者が得られるようになれば、この問題を見失い、状況が悪化する可能性があります。

いずれにしても、これはあなたの問題ではないことは承知していますが、Patreonがマーケティングでこれらの統合を利用して人々がシステムを利用するように促しているにもかかわらず、これらの統合に対するサポートを全く提供していないことに非常に失望しています。

よろしくお願いいたします。
Martin.

Webhookサポートにより、変更への同期がより速くなりますが、プラグインはそれなしでも100%機能します。6時間ごとに完全な同期を行い、新しいパトロンをキャプチャし、退会したパトロンのアクセスを削除します。そのため、そのようなことを心配する必要はありません。

参考までに、このプラグインはDiscourseで100%作成され、Patreonのサポートなしで作成されたため、APIが存在する限り機能し続けることができます。

「いいね!」 1