Déverrouillage Discourse

Bonjour à tous,

Nous avons développé un plugin Unlock protocol pour Discourse. Il vous permet de verrouiller des sujets derrière un « paywall » crypto.

Les utilisateurs doivent acheter votre NFT avec leur portefeuille crypto (MetaMask, Wallet Connect) pour accéder aux sujets. Vous pouvez le configurer avec n’importe quel jeton ERC20 sur Ethereum, xDai, Polygon… Depuis la semaine dernière, vous pouvez également déverrouiller le contenu par paiement par carte de crédit.

ezgif-3-eda9d8c4547d

Vous pouvez le tester sur le forum de la communauté Unlock Protocol : https://unlock.community. Par exemple, ce sujet est verrouillé : https://unlock.community/t/introducing-the-dao/68 (sur xDai).

Vous pouvez utiliser le même verrouillage pour offrir à vos utilisateurs l’accès à des canaux privés Discord via https://swordybot.com/.

Dépôt du plugin : GitHub - discourse/discourse-unlock · GitHub
Documentation : https://unlock.community/t/unlock-discourse-plugin/64

N’hésitez pas à nous contacter si vous avez des questions.

32 « J'aime »

Intéressant, je me demande s’il existe un véhicule financier qui pourrait être conçu sur Ethereum (ou d’autres moteurs de crypto) pour des transactions répétées. Ce serait plutôt cool d’offrir un service d’abonnement où vous choisissez de payer X chaque mois.

9 « J'aime »

Pouvons-nous configurer un déverrouillage pour les commentaires ? Seulement pour le premier ou le second commentaire, pas pour le titre du sujet ni le contenu principal ?
Et pouvons-nous ajouter un paiement en dollars via Visa ou PayPal, et non en crypto-monnaie ?

1 « J'aime »

Bonjour @sam,

C’est possible avec le protocole Unlock : Recurring Memberships

Mais pour le moment, cela n’est pas implémenté dans le plugin. Nous l’ajouterons dans la prochaine version.

7 « J'aime »

Je ne suis pas sûr de comprendre cette partie.

Oui, il est également possible de payer par carte de crédit : Credit Card Support

2 « J'aime »

Commentaire déverrouillé, mais le sujet s’affiche toujours.

2 « J'aime »

Salut Sam ! Je suis Julien, le fondateur d’Unlock Protocol !

En effet, c’est possible comme l’a mentionné @kam44.

Le mécanisme principal consiste à utiliser le mécanisme d’« approbation » fourni par les contrats ERC20.
L’idée centrale est d’autoriser un contrat tiers, appelé « acheteur », dont la seule fonction est d’acheter des abonnements pour le compte des utilisateurs lorsque ceux-ci sont expirés (ou sur le point de l’être). Ainsi, un abonnement ne peut être « renouvelé » que lorsqu’il est presque expiré ou totalement expiré.

L’un des défis que nous cherchons à relever est de déterminer qui déclenchera la transaction sur ce contrat acheteur. Pour l’instant, l’approche consiste à faire en sorte que l’achat « rembourse » la personne qui déclenche la transaction, afin de couvrir les frais de gaz. Je pense que nous pouvons nous appuyer sur les « flashbots », qui effectuent déjà de l’arbitrage, pour cela !

C’est certainement l’un des sujets sur lesquels nous travaillons activement !

3 « J'aime »

Incroyable, je trouve fascinants certains des contrats intelligents que les véhicules financiers proposent. Je pense que cela pourrait s’avérer extrêmement puissant pour financer la bonne communauté.

En particulier, nous avons déjà Discourse Subscriptions Plugin, alors peut-être qu’une PR permettant un mode « Déverrouiller » par rapport à « Stripe » pourrait être une voie intéressante à explorer.

8 « J'aime »

@kam44
As-tu des nouvelles concernant le « déverrouillage des commentaires » ?

3 « J'aime »

Mise à jour ?
Ce plugin semble intéressant.

Super travail, mec !

1 « J'aime »

J’ai créé 2 contrats de verrouillage sur le tableau de bord Unlock
A. Verrouillage pour les utilisateurs qui ont des tokens (1000 < montant < 5000)
B. Verrouillage pour les utilisateurs qui ont plus de 5000 tokens

Pour A, je voudrais les ajouter au groupe A sur Discourse
Pour B, je voudrais les ajouter au groupe B sur Discourse

Actuellement, le plugin Unlock ne prend en charge qu’un seul contrat de verrouillage sur Discourse. Y a-t-il une astuce pour atteindre l’objectif ?

2 « J'aime »

Avez-vous trouvé une solution pour utiliser plus d’un contrat ?

J’essaie de télécharger le plugin Unlock Protocol. Je reçois les pages/erreurs suivantes. Veuillez me faire savoir comment je peux résoudre ce problème :


1 « J'aime »

Bonjour et bienvenue @thesidsridhar :slightly_smiling_face:

Comme il s’agit d’un plugin non officiel, j’ai déplacé votre message dans le sujet du plugin Unlock, car je pense que ce serait un meilleur endroit pour obtenir de l’aide de la part de personnes qui en savent plus à ce sujet. :+1:

1 « J'aime »

En fait, le plugin est maintenant géré par l’équipe Discourse, comme vous pouvez le voir ici : https://github.com/discourse/discourse-unlock

cc @zogstrip

5 « J'aime »

Oh, mes excuses. :pray: J’avais manqué ce changement. Merci de me l’avoir signalé. :+1:

4 « J'aime »

Oh non, ne vous inquiétez pas, nous ne l’avons mentionné nulle part.

2 « J'aime »

Salut @zogstrip Je voulais faire un nouveau point sur ce sujet. Comment résoudre l’erreur HasCustomFields:NotPreloadedError ?

3 « J'aime »

Je crains que le support pour ce plugin soit un peu limité en raison de la période des fêtes, mais (pour information) je viens de l’installer sur mon site de test et je suis également bloqué avec un message « Oups - Erreur 500 » avec la même erreur enregistrée :

Message

HasCustomFields::NotPreloadedError (Tentative d'accès au champ personnalisé non préchargé 'unlock-lock' sur la classe 'Category'. Ceci est interdit pour éviter les requêtes N+1.)
app/models/concerns/has_custom_fields.rb:175:in `[]'
(eval):37:in `_fast_attributes'
(eval):6:in `_fast_attributes'
app/controllers/application_controller.rb:637:in `preload_current_user_data'
app/controllers/application_controller.rb:437:in `preload_json'
app/controllers/application_controller.rb:413:in `block in with_resolved_locale'
app/controllers/application_controller.rb:413:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:71:in `call'
lib/middleware/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:368:in `call'
config/initializers/100-quiet_logger.rb:23:in `call'
config/initializers/100-silence_logger.rb:31:in `call'
lib/middleware/enforce_hostname.rb:23:in `call'
lib/middleware/request_tracker.rb:209:in `call'

Backtrace

app/models/concerns/has_custom_fields.rb:175:in `[]'
plugins/discourse-unlock/plugin.rb:63:in `block (2 levels) in activate!'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:375:in `include?'
(eval):37:in `_fast_attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:456:in `attributes'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:480:in `_serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:359:in `serializable_hash'
active_model_serializers (0.8.4) lib/active_model/serializer.rb:347:in `as_json'
plugins/chat/app/serializers/chat_channel_serializer.rb:51:in `chatable'
(eval):6:in `_fast_attributes'

Je pense qu’il y a un conflit avec le plugin Chat d’une manière ou d’une autre. Si je désactive Chat via la console Rails, je peux accéder à mon site normalement (y compris la page /admin/plugins/discourse-unlock).

6 « J'aime »

Génial ! Comment désactiver le chat via la console Rails ?

2 « J'aime »