Configurer les notifications Slack avec le plugin discourse-chat-integration

Malheureusement, aucune de ces deux options n’est possible pour le moment.

2 « J'aime »

Bonjour, je suis en train de configurer cela, et je ne sais pas si l’interface a changé ou non, mais ces étendues sont-elles configurées sous Étendues de jeton de bot ou sous Étendues de jeton utilisateur ?

Merci.

1 « J'aime »

Ces deux fonctionnalités devraient être possibles grâce à l’intégration Zapier. Ce n’est pas idéal, je le sais, mais comme je l’ai envisagé comme une solution de contournement pour ce plugin, j’ai pensé qu’il était utile de le partager.

1 « J'aime »

Salut !

J’ai essayé de configurer le plugin comme expliqué dans ce fil de discussion, mais lorsque j’essaie de publier une transcription, je ne reçois que ce message du bot Slack :

“Chargement de la transcription…”

Mon Discourse est hébergé sur le sous-domaine “discourse.group”. Voici ce que j’obtiens dans les journaux d’erreurs :

/var/www/discourse/plugins/discourse-chat-integration/lib/discourse_chat/provider/slack/slack_command_controller.rb:86:in `block in process_post_request’

/var/www/discourse/lib/scheduler/defer.rb:94:in `block in do_work’

rails_multisite-2.1.0/lib/rails_multisite/connection_management.rb:252:in `with_connection’

rails_multisite-2.1.0/lib/rails_multisite/connection_management.rb:61:in `with_connection’

/var/www/discourse/lib/scheduler/defer.rb:89:in `do_work’

/var/www/discourse/lib/scheduler/defer.rb:79:in `block (2 levels) in start_thread’

Sais-tu comment résoudre ce problème ?

L’endroit où l’erreur se produit indique que les identifiants Slack saisis sur la page des paramètres de votre site sont incorrects. Pour accéder aux paramètres d’intégration de Chat, rendez-vous sur la page Admin / Paramètres et descendez jusqu’en bas du menu de gauche. Vous verrez un bouton « Chat Integrations » en bas de la liste.

Sur cette page de paramètres, assurez-vous que les paramètres suivants sont corrects :

  • chat integration discourse username
  • chat integration slack access token
  • chat integration slack incoming webhook token

Faites-le-nous savoir si cela ne résout pas le problème. Comme votre site est hébergé par nos soins, nous pouvons examiner ce qui ne va pas.

2 « J'aime »

Solution aux erreurs :

1) DiscourseChat::ProviderError

2) {\"ok\":false,\"error\":\"not_in_channel\"}

Je tente de rendre cela plus évident, car il était malheureusement difficile de trouver la réponse. Le processus de création de l’application Slack a légèrement changé depuis ces instructions. Il semble également que l’intégration effective du bot avec un canal Slack nécessite un peu plus de configuration.

Depuis mon espace de travail Slack, j’ai pu confirmer que l’application fonctionnait en envoyant un message privé au bot @discourse ainsi qu’en exécutant les commandes /discourse. Cependant, depuis les paramètres du plugin Discourse, je recevais des erreurs et ne pouvais ni définir un canal ni envoyer de message de test.

Comment procéder

EDIT : des informations mises à jour sont disponibles dans les réponses ci-dessous. J’ai tenté d’intégrer les étapes supplémentaires ici à compter du 06/04/20. Veuillez commenter ou modifier ces étapes si nécessaire. - dp

  1. Permissions du bot : l’autorisation chat:write.customize doit être ajoutée pour que la commande slash /discourse fonctionne. J’ai également ajouté chat:write.
  2. Vous devrez créer le canal dans Slack. Ensuite, soit exécutez les commandes /discourse depuis ce canal, soit configurez une règle dans Discourse.
  3. Vous devez ajouter manuellement le bot au canal concerné (au moins pour publier une transcription) ! Vous pouvez le faire dans la conversation privée avec le bot sur Slack : "paramètres de conversation" > "ajouter cette application à un canal".
  4. Ensuite, et c’est important, vous devez ajouter l’utilisateur du bot Discourse au canal. Je n’ai pas réussi à le faire via les boutons normaux du canal « ajouter un utilisateur » ou « ajouter une application ». MAIS j’ai réussi en envoyant un message à “@discourse” dans le canal → Slack m’a alors demandé : “@discourse n’est pas dans ce canal, souhaitez-vous l’ajouter ?”
  5. J’ai ensuite pu envoyer un message de test avec succès depuis les paramètres des plugins :rocket:

Remarque : lors de la configuration de l’application Slack, j’ai défini le nom de l’application à @discourse

5 « J'aime »

Merci @thedavidprice et @simon pour votre excellent soutien !

J’ai résolu le problème ! Tout était en ordre, mais le bot devait être ajouté au canal pour publier une transcription. Peut-être pourriez-vous ajouter ce point à la liste des instructions ci-dessus ?

Autre chose que j’ai remarquée : l’étendue de permission chat:write:bot n’est plus disponible ; vous devez choisir chat:write !

4 « J'aime »

Bonjour @Vincenzo_Lomonaco, pour confirmer, vous dites que le plugin lui-même ajoutera désormais le bot au canal (par exemple, lors de la création d’une règle) ?

En effet, il semble que beaucoup de choses aient changé côté configuration de Slack. Je peux confirmer que j’ai ajouté chat:write. J’ai également ajouté chat:write.customize.

Une fois l’application créée via l’API Slack, il n’était pas clair pour moi si je devais également ajouter l’application à un canal dans les paramètres de mon espace de travail pour les applications. Dans mon cas, j’ai choisi un canal.

Enfin, j’ai également eu quelques confusions quant à savoir si je devais ou non ajouter les « Informations d’affichage » sur la page des paramètres de l’application Slack. Je l’ai fait, ce qui semble être les informations utilisées dans l’annuaire des applications Slack et pour « Applications récentes » dans la colonne de gauche de Slack. L’URL de l’image que j’ai entrée dans Discourse pour les messages du bot ne semble pas fonctionner. Le nom du bot, lui, fonctionne.

Merci encore ! Dans l’ensemble, je suis très satisfait de la progression des choses.

1 « J'aime »

Bonjour @thedavidprice,

Non, vous devez ajouter manuellement le bot au canal concerné (au moins pour publier une transcription) ! Vous pouvez le faire dans la conversation privée avec le bot sur Slack : "Paramètres de la conversation" > "Ajouter cette application à un canal".

1 « J'aime »

Merci d’avoir fait cela. J’ai mis à jour le guide en me basant sur votre message et mes propres tests. Je peux confirmer que la permission chat:write.customize doit être ajoutée aux paramètres des portées du jeton de bot pour que la commande slash /discourse post fonctionne.

Je pensais que la portée channels:join suffisait à permettre au bot de rejoindre automatiquement un canal, mais selon mes tests, cela ne fonctionne pas. Je pense que la méthode la plus simple pour ajouter le bot à un canal est maintenant décrite à l’étape 15 du guide. S’il existe une meilleure méthode, faites-le-moi savoir.

Je nettoierai les réponses dans ce sujet dans quelques jours, une fois que nous aurons confirmé que l’état actuel du guide fonctionne pour tout le monde.

1 « J'aime »

Salut les amis, je cherche à configurer cela pour un endroit avec des restrictions de sécurité plus strictes. En comparant les étendues requises documentées dans le message d’origine avec celles actuellement autorisées, voici ce que je constate :

chat:write # ? incertain, mais chat:write:bot est OK
chat:write.customize ? incertain, mais chat:write:bot est OK
users:read # X rejeté
channels:history X rejeté
groups:history # OK, accepté avec prudence
im:history # OK, accepté

Si l’application était configurée uniquement avec les étendues suivantes, qu’est-ce qui fonctionnerait et qu’est-ce qui serait cassé ?

chat:write:bot
groups:history
im:history

Par exemple, je serais d’accord pour renoncer aux transcriptions…

3 « J'aime »

Ça fait un moment que j’ai mis cela en place pour la première fois, et il semble que les scopes de Slack aient beaucoup changé depuis. Je vois que les gens maintiennent le wiki de l’OP à jour, c’est super ! :heart_eyes:

Je pense que chat:write:bot et chat:write:user ont été dépréciés au profit de chat:write.

Il semble que chat:write.customize soit nécessaire car nous personnalisons le nom et l’icône de l’auteur du message pour les faire correspondre à l’utilisateur Discourse.

Les scopes users:read et *:history sont uniquement utilisés pour la publication des transcriptions. Je réalise que cela peut sembler beaucoup ! Mais fondamentalement, Discourse a besoin d’accéder à votre historique de chat pour construire la transcription. Si vous préférez ne pas accorder ces autorisations, il est tout à fait acceptable de les ignorer et de continuer sans publication de transcription.

3 « J'aime »

Lorsque j’utilise des commandes slash, je rencontre cette erreur : /hub a échoué avec l'erreur "dispatch_failed".

(Nous utilisons /hub au lieu de /discourse)

J’ai réussi à ajouter l’application au canal. J’ai également pu envoyer un message de test depuis Discourse vers notre Slack, mais je n’ai pas réussi à faire fonctionner les commandes /. J’aimerais beaucoup de l’aide pour résoudre ce problème !

Vérifiez les permissions que vous avez ajoutées à l’application sur Slack. La dernière fois que j’ai configuré cela, toutes les permissions des étapes 5 et 6 du guide devaient être ajoutées aux portées de l’application :

  • chat:write
  • chat:write.customize
  • users:read
  • channels:history
  • groups:history
  • im:history

Faites-nous savoir si cela ne résout pas le problème.

1 « J'aime »

Je crois que j’ai bien les autorisations correctes. Voici une capture d’écran des paramètres que j’ai sous Bot Token Scopes.

Qu’en penses-tu ? Malheureusement, cela signifie que quelque chose d’autre se passe.

2 « J'aime »

J’ai relu le guide de configuration et j’ai créé une commande slash /hub. L’exécution de /hub post fonctionne pour moi sur tous les canaux auxquels j’ai ajouté l’application. J’utilise les mêmes autorisations que celles illustrées dans la capture d’écran que vous avez partagée.

Pouvez-vous vérifier que vous avez bien effectué l’étape 8 du guide ? Cette section vous indique de :

Accéder à la page Interactivité et raccourcis, activer la section Interactivité en la passant sur Activé, puis entrer cette URL dans le champ « URL de la requête » :

<votre-url-discourse>/chat-integration/slack/interactive

Il serait également utile de confirmer que vous pouvez publier depuis Discourse vers le canal Slack sur lequel vous tentez d’exécuter la commande /hub post.

Faites-nous savoir si vous rencontrez toujours des difficultés pour que cela fonctionne.

1 « J'aime »

J’ai vérifié et je pense que oui, j’ai bien suivi cette étape.

Voici une capture d’écran.

Je pense que l’erreur se produit dans quelque chose lié à l’étape 7, cependant.

Voici mes paramètres.

Voici comment cela s’affiche lorsque j’essaie d’utiliser la commande slash sur Slack :

Oui, cette partie fonctionne parfaitement.

Non, ça ne fonctionne pas. :slightly_smiling_face:

1 « J'aime »

L’« URL de la requête » dans la section « Modifier la commande » de votre capture d’écran n’utilise pas HTTPS. Peut-être est-ce le problème.

2 « J'aime »

C’est ça, merci beaucoup!!!

1 « J'aime »

J’ai suivi les instructions de ce guide et mon intégration Discourse/Slack fonctionne (pour l’essentiel). Excellent travail sur ce plugin ! J’ai toutefois trois questions/observations.

Impossible de s’abonner aux messages d’une sous-catégorie en s’abonnant à la catégorie parente

Cela peut être un comportement voulu, mais ce n’était pas évident au premier abord. J’ai des catégories parentes avec des sous-catégories. Je m’attendais à ce que, si je crée une règle filtrant « Tous les messages et réponses » pour la catégorie parente, cela inclue implicitement chacune des sous-catégories. Cela n’a pas semblé fonctionner cependant, et j’ai dû créer des règles pour chacune de mes (nombreuses) sous-catégories. Ce serait une excellente demande d’amélioration pour simplifier la configuration d’une installation Discourse comportant de nombreuses sous-catégories sous quelques catégories parentes.

Impossible de s’abonner à toutes les catégories avec une seule règle

J’ai trouvé des informations contradictoires à ce sujet et je suppose que l’ancien plugin Slack le permettait, mais je n’ai pas trouvé moyen de créer une règle unique qui s’abonne simplement à tous les messages et réponses de TOUTES les catégories du site. J’espérais pouvoir faire cela avec une seule règle simple. Mais à cause de cela et du point précédent, il a fallu 31 règles distinctes au lieu d’une seule pour établir un lien de base entre toute ma plateforme Discourse et un canal Slack. Sauf si j’ai manqué quelque chose, veuillez également considérer cela comme une demande d’amélioration.

La commande de publication Discourse ne fonctionne que dans un seul canal

Maintenant, c’est probablement de ma faute, mais je n’arrive pas à comprendre. J’ai parcouru tous les fils de discussion sur le sujet et j’aimerais beaucoup de l’aide. J’ai vérifié et revérifié les permissions de mon application Slack et je peux confirmer que cela fonctionne à 100 %… dans un seul de mes canaux !

/discourse post 20

Je sais donc que le jeton d’accès est configuré et fonctionne correctement. Cependant, dans tous les autres canaux de mon équipe Slack, la commande ci-dessus affiche simplement :

Chargement de la transcription...

et c’est tout. Ce sont tous des canaux publics et j’ai essayé toutes les combinaisons possibles de paramètres. Le seul canal qui fonctionne a été créé aujourd’hui, mais lorsque j’en ai créé un autre pour tester, cela n’a pas fonctionné. Je ne sais même pas par où commencer le dépannage. Les seuls journaux que je connais dans Discourse sont :

./launcher logs app

mais il ne semble y avoir rien du tout là-dedans. Quel paramètre ai-je pu négliger qui ne permettrait la publication que dans un seul canal, et où devrais-je chercher pour déboguer cela ?