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!
Merci @Falco,
Je vais leur demander. Ils m’ont déjà dit qu’ils ne fournissaient pas de support pour l’API, ce qui est dommage. Je n’avais pas réalisé que Patreon était une entreprise limitée quand j’ai commencé ça.
OK, je vais donc utiliser les options obsolètes. Dois-je utiliser une API v1, un webhook aussi ? J’ai essayé les deux à l’origine, mais je n’ai pas essayé depuis quelques semaines maintenant.
Merci, @Falco J’ai tout reconfiguré et changé toutes les clés et secrets d’API. Le test manuel renvoie le code d’état 200, donc les appels passent. J’ai également remarqué ce matin, en vérifiant le plugin Discourse / Patreon, que les données avaient été synchronisées il y a 5 heures. J’étais au lit il y a cinq heures, donc quelque chose se passe, mais je vois toujours le message rouge « Webhook en pause », et le bouton « Reprendre » génère une autre erreur.
Quoi qu’il en soit, je demanderai les journaux détaillés à l’équipe Patreon et verrai ce qu’ils disent.
J’ai trouvé une réponse du support de Patreon dans ma boîte de réception surchargée, et ils disent simplement qu’ils ne peuvent pas fournir les journaux. Je vois également qu’ils ont fermé leur forum de support communautaire.
Je rencontre toujours ces erreurs, bien que certaines synchronisations fonctionnent, car je vois des messages qui indiquent que le système s’est synchronisé pendant mon sommeil, mais les nouveaux Patreons ne sont toujours pas ajoutés automatiquement lorsqu’ils effectuent une contribution. Je contourne cela en créant des invitations qui incluent l’accès à diverses catégories en fonction du niveau du nouveau patron, mais je dois les envoyer manuellement, donc ce n’est pas très fluide. Je suis également préoccupé par le fait que les personnes qui cessent de contribuer ne seront probablement pas supprimées de ma communauté Discourse, et bien que je n’aie encore qu’un petit nombre de patrons et que je puisse vérifier, si je commence à avoir une bonne participation en faisant la promotion de mon programme Patreon, je vais probablement perdre le contact avec cela et les choses vont se déséquilibrer.
Quoi qu’il en soit, je sais que ce n’est pas vraiment votre problème, mais je suis vraiment déçu que Patreon n’offre aucun support pour ces intégrations, malgré leur utilisation dans leur marketing pour inciter les gens à utiliser leur système.
La prise en charge des webhooks permet à la synchronisation de réagir plus rapidement aux changements, mais le plugin fonctionnera à 100 % sans elle. Nous effectuerons une synchronisation complète toutes les 6 heures et capturerons les nouveaux patrons, tout en supprimant l’accès aux patrons qui sont partis. Vous n’avez donc pas à vous soucier de ce genre de choses.
Pour ce que ça vaut, ce plugin a été créé à 100 % par nous chez Discourse sans le soutien de Patreon, nous sommes donc en mesure de le maintenir opérationnel tant que leur API existera.