Ce plugin est automatique ; il ne dispose d’aucune commande. Si vous recherchez un framework générique pour bot Discord, veuillez consulter le kit de construction de bot de @merefield ici, sur lequel ce plugin est basé.
Discord Sync Synchroniser un forum Discourse avec un serveur Discord
Ce plugin permet de synchroniser certains éléments liés aux utilisateurs entre une instance de forum Discourse et un serveur Discord. Il crée un bot Discord pour gérer toutes les autorisations et déclencher certaines actions dans le serveur.
Fonctionnalités
Synchroniser les groupes Discourse vers les rôles Discord
Il gère automatiquement les rôles sur le serveur Discord en fonction des groupes auxquels un utilisateur a accès dans Discourse.
Rôle « Vérifié »
Vous pouvez ajouter un « rôle vérifié » qui sera attribué à tous les utilisateurs Discord ayant lié un compte Discord.
Rôles sécurisés
Comme ce plugin impose que les rôles dans Discord correspondent exactement aux groupes dans Discourse, vous pouvez définir une liste de rôles que le bot ignorera et que vous pourrez gérer manuellement sur le serveur Discord.
Synchroniser le nom d’utilisateur Discourse avec le surnom Discord
Si vous souhaitez reconnaître les utilisateurs par leur nom d’utilisateur du forum, vous pouvez imposer que leur surnom sur le serveur Discord corresponde à leur nom d’utilisateur dans Discourse.
Déclencheurs
Le plugin exécutera une synchronisation complète Discourse → Discord (surnoms et rôles) dans les cas suivants :
Discourse
Un utilisateur est ajouté à un groupe
Un utilisateur est retiré d’un groupe
Le profil d’un utilisateur est mis à jour Destiné à la synchronisation nom d’utilisateur ↔ surnom
Un utilisateur s’authentifie Cela ne s’exécutera que si le fournisseur d’authentification est Discord, afin de s’assurer qu’une première synchronisation est effectuée immédiatement après la liaison des comptes
Discord
Un utilisateur rejoint un serveur Discord Il recherchera dans la base de données un utilisateur correspondant à l’ID Discord fourni, puis lancera le travail de synchronisation
Installation
Ce plugin dépend de Discord OAuth2 pour identifier et lier les comptes Discourse et Discord. Si vous ne souhaitez pas permettre aux utilisateurs de se connecter avec Discord, mais que vous désirez tout de même lier les comptes, consultez la solution à ce sujet.
Prérequis
Ce plugin nécessite libsodium (requis par le gem Ruby Discord). Pour l’installer, modifiez votre fichier .yml et ajoutez le code suivant :
Suivez le guide standard Comment installer un plugin avec l’URL du dépôt : https://github.com/barreeeiroo/discourse-discord-sync.git
Suivez ce guide pour configurer la connexion via Discord sur votre instance Discourse.
Dans le portail développeur Discord, allez dans la section Bot et ajoutez-le à votre serveur. Assurez-vous de lui accorder le rôle le plus élevé possible.
Dans Discourse, dans les paramètres du plugin, définissez discord sync token avec le token du bot obtenu à l’étape précédente.
Options de configuration
discord sync enabled : Activer ou désactiver l’intégration
discord sync token : Token du bot Discord
discord sync prefix : Préfixe pour les commandes (actuellement uniquement !ping)
discord sync admin channel id : Canal où publier les messages de journalisation (changements de surnom, changements de rôle)
discord sync username : Si vrai, synchronise tous les surnoms du serveur Discord avec le nom d’utilisateur Discourse correspondant
discord sync verified role : Rôle à attribuer à tous les utilisateurs disposant d’un compte Discourse
discord sync safe roles : Liste des rôles que le bot ignorera et marquera comme attribués manuellement dans Discord
Mode d’emploi
Pour lier les comptes, si vous autorisez les utilisateurs à s’authentifier via Discord, ils peuvent simplement utiliser ce fournisseur. Sinon, ils doivent se rendre dans leurs Préférences de compte, faire défiler jusqu’à Comptes associés et cliquer sur Connecter dans la ligne Discord.
Démo en direct
Nous utilisons actuellement ce plugin sur notre instance Discourse de la communauté Kodular, avec le serveur Discord à kodul.ar/discord :
Remerciements
Discourse Bot, créé par @merefield
Un grand merci à Robert pour avoir fourni le squelette de ce plugin. Cela a grandement aidé à établir la base de l’ensemble du plugin, permettant d’exécuter un bot Discord au sein d’une instance Discourse (et bravo pour son astuce permettant d’installer libsodium !).
Discourse Discord Sync, créé par @angus
Une alternative pour synchroniser les niveaux de confiance vers des rôles Discord sans avoir besoin d’un bot.
Login with Discord, créé par l’équipe Discourse
Ce plugin n’aurait pas été possible sans l’intégration Discord OAuth2 (anciennement un plugin), permettant de lier les comptes Discourse et Discord.
Partially enable login option, créé par @Falco et @Roman
Et merci à Falco et Roman d’avoir proposé une option permettant d’activer un fournisseur de connexion uniquement pour « lier » les comptes, sans activer réellement l’option d’authentification.
discordrb
Ce plugin repose sur le gem discordrb, qui permet de se connecter à l’API Discord en utilisant Ruby.
C’est vraiment génial ! Je suis plutôt un fan de Telegram, mais Discord est aussi super ! J’ai l’impression que Telegram irait très bien avec Discourse, tous deux étant des projets open-source bien connus axés sur la communication.
Ce serait cool si cela disposait d’une fonctionnalité de publication croisée. Si quelqu’un disait quelque chose dans le chat Discord, cela créerait une réponse dans un fil Discord spécifique connu sous le nom de « fil de la salle de chat ». Cela donnerait ainsi un coup de pouce au référencement de votre site Discourse grâce à tout le nouveau contenu généré dans le fil de discussion.
J’aime beaucoup Telegram aussi, et nous l’utilisions avec un groupe de discussion public. Mais il y a quelques jours, nous sommes passés à Discord, car nous avions plus de 1 000 membres et il est assez difficile de modérer un groupe aussi important. Avec Discord et son système de rôles, c’était facile à faire.
En plus du bot Discord de @merefield, il existe également un plugin de synchronisation pure OAuth2 (sans bot) entre les rôles Discord et les groupes Discourse (par exemple, synchroniser le niveau de confiance 3 avec un rôle Discord) ici :
Cela synchronise Discourse vers Discord. Cependant, nous nous appuyons davantage sur nos rôles Discord que sur les groupes Discourse pour identifier les types d’intervenants. Il serait donc idéal que ce plugin puisse également effectuer une synchronisation de Discord vers Discourse, c’est-à-dire ajouter les utilisateurs Discourse à des groupes en fonction de leurs rôles Discord, attribuer des badges aux utilisateurs Discourse en fonction de leurs rôles Discord, modifier le nom d’utilisateur Discourse pour qu’il corresponde au nom d’utilisateur Discord (et non l’inverse), etc.
Serait-il possible de configurer la synchronisation dans le sens inverse ? C’est-à-dire synchroniser les rôles de Discord vers les groupes Discourse, les surnoms, etc.
Nous gérons les rôles et autres éléments depuis Discord et préférerions les pousser vers Discourse.
Cela a l’air vraiment cool. La seule chose, c’est : comment cela correspond-il au groupe Discord de Discourse ? Est-ce uniquement par nom ? Si oui, pourriez-vous permettre de définir quel groupe correspond à quel rôle en utilisant l’ID du rôle Discord ? Si cette solution n’est pas possible, pensez-vous pouvoir ajouter une liste blanche de rôles ? Je n’ai que quelques rôles qui ont des groupes sur Discourse, mais j’utilise de nombreux rôles sur Discord.
Cette fonctionnalité en particulier est extrêmement importante pour nous, car nous gérons tous nos rôles via Discord. Il serait appréciable de disposer d’un moyen de synchroniser les groupes de Discord vers Discourse. Même si la « synchronisation » se limite aux noms et que les permissions, etc., sont configurées a posteriori.
@barreeeiroo : avez-vous des projets dans ce sens ? Ou auriez-vous des conseils sur la marche à suivre ? La gestion manuelle des rôles via « Rôles sécurisés » est presque suffisante. J’ai des rôles contenant des espaces et je ne peux donc pas les ajouter dans le champ « Rôles sécurisés ». Au lieu de mettre à jour manuellement tous mes rôles sur Discord et de les ajouter sans espaces, existe-t-il une autre voie à suivre ?
Ce serait tellement bien de pouvoir « pousser » les groupes de Discord vers les groupes de Discourse, si possible.
Merci pour votre travail sur ce plugin !
Édité : La proposition d’utiliser les ID de rôle plutôt que les noms résoudrait certainement beaucoup de problèmes de mon côté.
Je rencontre toujours des problèmes pour configurer cela. Pour les rôles sur Discord, s’agit-il d’un ID ou d’un nom ? De plus, au lieu de « rôles protégés », pourriez-vous ajouter une option me permettant de synchroniser uniquement des rôles spécifiques ?
Je ne connais pas Ruby, sinon je vous proposerais mon aide. Je vais probablement apprendre les bases ou simplement implémenter quelque chose via l’API en Java.
J’ai trouvé mon problème, j’avais le nom du canal d’administration au lieu de son id. Maintenant, je dois juste faire quelques vérifications de permissions/rôles pour voir pourquoi rien ne se passe réellement.
C’est le but de ce plugin ? Il est cassé ? Regardez aussi mon plugin de bot lié dans le message d’origine qui effectue la synchronisation de Discourse vers Discord (bien qu’en utilisant une commande de bot).
Tous les plugins ici, donnent les rôles que vous avez sur Discourse à votre compte Discord. Il ne vous donne pas vos rôles Discord sur votre compte Discourse.
Non, cela donne un exemple si vous avez « Community Moderator » dans Discourse, cela changera votre rôle Discord.
Mais si vous avez « Community Moderator » dans Discord, cela ne changera pas votre rôle dans Discourse.