Webhooks do Patreon falhando

I wonder if @Falco or anyone else could help.

I recently started using Patreon and I’ve set up a Discourse server in a Digital Ocean Droplet. I also installed the discourse-patreon plugin and entered all the keys etc. following this tutorial. I’m able to click the Update Patreon Data & Sync Groups button on the Plugin > Patreon > Filters page, and this works fine. All of my tiers are available and I’ve assigned all of them to Discourse Groups etc.

All seemed fine, but then I received an email from the Patreon servers telling me:
We’re writing to let you know that a WebHook POST to https://discourse.martinbaileyphotography.com/patreon/webhook has failed. As a result we’ve paused on sending more events to your URL.

I have tried setting up the client with both API 1 as specified in this post and API 2 changing the keys and secrets accordingly each time, and trying the top three deprecated events and the bottom six with both APIs, and I cannot find a combination that works.

In my Discourse logs, I’ve found this error message:
(patreon) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected

I’ve asked Digital Ocean and they do not block POST requests and can’t think of any reason with their system why this would not work, so I’m stumped. I can’t find any useful information to help me fix this, so I’m now posting here (and in the Patreon forum) in the hope that this rings a bell with someone. Can anyone offer any advice on either how to fix this or what to check in order to troubleshoot this issue further.

Thanks in advance for any help anyone can provide!

Regards,
Martin Bailey.

2 curtidas

When configuring webhooks you should only enable the deprecated ones as explained in Configuring Patreon integration with Discourse and configure the secret in site settings.

If they still fail, it may be a problem on the Patreon side. Can you ask their support for detailed logs for the failures?

2 curtidas

Obrigado @Falco,

Vou perguntar a eles. Eles já me disseram que não oferecem suporte para a API, o que é uma pena. Eu não percebi que o Patreon é uma empresa limitada quando comecei isso.

Ok, então usarei as opções descontinuadas. Devo usar uma API v1, webhook também? Eu tentei ambos originalmente, mas não tento há algumas semanas.

Obrigado pela sua ajuda.

4 curtidas

Sim, por favor, use a versão v1.

3 curtidas

Obrigado, @Falco. Acabei de reverter tudo e troquei todas as chaves e segredos da API. O teste manual está retornando o código de status 200, então as chamadas estão sendo realizadas. Também notei, ao verificar o plugin Discourse / Patreon esta manhã, que os dados haviam sido sincronizados 5 horas atrás. Eu estava dormindo cinco horas atrás, então algo está acontecendo, mas ainda vejo a mensagem vermelha “Webhook Paused” e o botão “Resume” resulta em outro erro.

De qualquer forma, solicitarei os logs detalhados da equipe do Patreon e verei o que eles dizem.

Obrigado novamente pela sua ajuda.

2 curtidas

Olá @Falco,

Encontrei uma resposta do Suporte do Patreon na minha caixa de entrada sobrecarregada, e eles simplesmente dizem que não podem fornecer os logs. Também vejo que eles fecharam o fórum de suporte da comunidade.

Ainda estou vendo esses erros, embora alguma sincronização esteja funcionando, pois vejo mensagens que mostram que o sistema sincronizou enquanto eu dormia, mas novos Patreons ainda não estão sendo adicionados automaticamente quando eles fazem uma contribuição. Estou contornando isso criando convites que incluem acesso a várias categorias de acordo com o nível do novo patrono, mas tenho que enviá-los manualmente, então não é muito eficiente. Também estou preocupado que as pessoas que param de contribuir provavelmente não serão removidas da minha comunidade Discourse e, embora eu ainda tenha um pequeno número de patronos e pudesse verificar, se eu começar a ter uma boa participação ao promover meu programa Patreon, provavelmente perderei o controle disso e as coisas sairão dos trilhos.

De qualquer forma, sei que não é seu problema em si, mas estou realmente decepcionado que o Patreon esteja oferecendo suporte zero para essas integrações, apesar de usá-las em seu marketing para fazer as pessoas começarem a usar seu sistema.

Atenciosamente,
Martin.

O suporte a webhook faz com que a sincronização reaja às mudanças mais rapidamente, mas o plugin funcionará 100% sem ele. Faremos uma sincronização completa a cada 6 horas e capturaremos novos apoiadores, além de remover o acesso de apoiadores que saíram. Portanto, você não precisa se preocupar com esse tipo de coisa.

Pelo que vale, este plugin foi 100% criado por nós no Discourse sem o apoio do Patreon, então somos capazes de mantê-lo funcionando enquanto a API deles existir.

1 curtida