Webhooks do Patreon falhando

Gostaria de saber se @Falco ou alguém mais poderia ajudar.

Recentemente comecei a usar o Patreon e configurei um servidor Discourse em um Droplet da Digital Ocean. Também instalei o plugin discourse-patreon e inseri todas as chaves etc., seguindo este tutorial. Consigo clicar no botão “Update Patreon Data & Sync Groups” na página Plugin > Patreon > Filtros, e isso funciona perfeitamente. Todos os meus níveis estão disponíveis e atribuí todos eles a Grupos do Discourse etc.

Tudo parecia estar certo, mas então recebi um e-mail dos servidores do Patreon informando:
Estamos escrevendo para informar que um POST de WebHook para https://discourse.martinbaileyphotography.com/patreon/webhook falhou. Como resultado, pausamos o envio de mais eventos para sua URL.

Tentei configurar o cliente tanto com a API 1, conforme especificado neste post, quanto com a API 2, alterando as chaves e segredos de acordo a cada vez, e testei os três eventos obsoletos superiores e os seis inferiores com ambas as APIs, mas não encontrei nenhuma combinação que funcione.

Nos meus logs do Discourse, encontrei esta mensagem de erro:
(patreon) Falha de autenticação! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detectado

Perguntei à Digital Ocean e eles confirmaram que não bloqueiam solicitações POST e não conseguem imaginar nenhum motivo em seu sistema que explicaria isso não funcionar, então estou sem ideias. Não consigo encontrar nenhuma informação útil para me ajudar a corrigir o problema, então estou postando aqui (e no fórum do Patreon) na esperança de que isso lembre alguém. Alguém pode oferecer algum conselho sobre como corrigir isso ou o que verificar para solucionar o problema mais a fundo?

Obrigado antecipadamente por qualquer ajuda que alguém possa fornecer!

Atenciosamente,
Martin Bailey.

2 curtidas

Ao configurar webhooks, você deve habilitar apenas os obsoletos, conforme explicado em Configure Patreon integration with Discourse, e configurar o segredo nas configurações do site.

Se eles ainda falharem, pode ser um problema do lado do Patreon. Você pode solicitar à equipe de suporte deles logs detalhados sobre as falhas?

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