Patreon Webhooks 失效

我想知道 @Falco 或是否有其他人能够提供帮助。

我最近开始使用 Patreon,并在 Digital Ocean Droplet 上搭建了一个 Discourse 服务器。我还安装了 discourse-patreon 插件,并按照本教程输入了所有密钥等信息。我能够点击“插件 > Patreon > 过滤器”页面上的“更新 Patreon 数据并同步群组”按钮,该操作运行正常。我的所有会员层级都已显示,并且我已将它们全部分配给 Discourse 群组等。

一切似乎都很顺利,但随后我收到了一封来自 Patreon 服务器的邮件,内容如下:
我们写信通知您,发送至 https://discourse.martinbaileyphotography.com/patreon/webhook 的 WebHook POST 请求失败。因此,我们已暂停向您的 URL 发送更多事件。

我曾尝试按照此帖中的说明,分别使用 API 1 和 API 2 配置客户端,每次相应地更改密钥和机密,并尝试了前三个已弃用的事件以及后六个事件,但始终找不到能够正常工作的组合。

在我的 Discourse 日志中,我发现了以下错误信息:
(patreon) 认证失败!csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | 检测到 CSRF

我已咨询 Digital Ocean,他们表示不会阻止 POST 请求,也无法想到其系统中有任何原因会导致此问题,因此我束手无策。我找不到任何有用的信息来帮助我解决此问题,因此现在在此发帖(并在 Patreon 论坛发帖),希望有人能对此有所印象。关于如何解决此问题,或需要检查哪些内容以进一步排查,有人能提供任何建议吗?

提前感谢任何提供的帮助!

此致,
Martin Bailey。

在配置 Webhook 时,您应仅启用已弃用的 Webhook,具体说明请参阅 Configure Patreon integration with Discourse

如果仍然失败,可能是 Patreon 端的问题。您能否联系他们的支持团队以获取失败的详细日志?

谢谢 @Falco

我会问他们。他们已经告诉我他们不为 API 提供支持,这很可惜。我开始时没有意识到 Patreon 是一家糟糕的公司。

好的,那么我将使用已弃用的选项。我应该也使用 API v1、webhook 吗?我最初尝试了两者,但几周没有再尝试过了。

感谢您的帮助。

是的,请使用 v1 版本。

谢谢,@Falco 我已将所有内容切换回,并更改了所有 API 密钥和密钥。手动测试返回的状态码为 200,因此调用已成功。我今天早上还注意到,当我检查 Discourse / Patreon 插件时,数据显示已于 5 小时前同步。五小时前我还在睡觉,所以有些事情正在发生,但我仍然看到红色的“Webhook Paused”消息,并且点击“Resume”按钮会导致另一个错误累积。

无论如何,我将向 Patreon 团队请求详细日志,看看他们怎么说。

再次感谢你的帮助。

您好 @Falco

我在我那堆积如山的收件箱里找到了来自 Patreon 支持的回信,他们只是说无法提供日志。我还注意到他们关闭了他们的社区支持论坛。

我仍然看到这些错误,尽管有些同步工作正常,因为我看到了一些在我睡觉时系统同步的消息,但新赞助者在付款后仍然没有被自动添加。我通过创建包含根据新赞助者等级访问各种类别的邀请来解决这个问题,但我必须手动发送这些邀请,所以不是很顺畅。我还担心那些停止贡献的人可能不会从我的 Discourse 社区中被移除,虽然我仍然只有少数赞助者并且可以检查,但如果我开始获得一些良好的参与度并推广我的 Patreon 项目,我可能会失去对这方面的关注,事情会变得一团糟。

总之,我知道这本身不是您的问题,但我真的对 Patreon 方面对这些集成提供的支持为零感到失望,尽管他们曾在营销中使用这些集成来吸引人们开始使用他们的系统。

此致,
Martin。

Webhook 支持使同步能更快地响应更改,但该插件在没有它的情况下也能 100% 工作。我们将每 6 小时进行一次完全同步,捕获所有新赞助者,并移除已离开赞助者的访问权限。所以你不用担心这类事情。

就我所知,这个插件完全由 Discourse 的我们创建,没有 Patreon 的支持,所以只要他们的 API 存在,我们就能让它正常工作。