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 ce sujet et j’aimerais beaucoup de l’aide. J’ai vérifié et revérifié les autorisations de mon application Slack et je peux confirmer qu’elle fonctionne à 100 %… mais uniquement dans l’un 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. Il s’agit de canaux publics et j’ai essayé toutes les combinaisons de paramètres possibles. Le seul canal qui fonctionne a été créé aujourd’hui, mais lorsque j’ai créé un autre nouveau canal pour tester, cela n’a pas fonctionné. Je ne sais même pas par où commencer le dépannage. Les seuls journaux dont j’ai connaissance dans Discourse sont :
./launcher logs app
mais il ne semble y avoir rien du tout dedans. Quelle configuration ai-je pu négliger qui permettrait la publication uniquement dans un canal, et où devrais-je chercher pour déboguer cela ?
Vérifiez si vous pouvez publier depuis Discourse vers les chaînes vers lesquelles vous essayez de poster depuis Discourse. Je suppose que le problème vient du fait que vous devez ajouter l’application que vous avez créée à la chaîne avant de pouvoir publier vers ou depuis celle-ci.
@simon Je pense que c’est peut-être ça ! Je vais être honnête, je suis un peu confus quant au fonctionnement de l’application Slack. Puisque j’ai pu exécuter des commandes /discourse ... dans n’importe quel canal Slack et que l’« Application » semblait être installée au niveau global, il me semblait avoir « ajouté » l’application de toutes les manières nécessaires. Cependant, lorsque j’ai explicitement /invite mon utilisateur d’application Discourse dans un autre canal, cela commence à fonctionner !
/invite @Discourse
/discourse post 20
Ce qui est très ennuyeux là-dedans, c’est que Slack ne m’affiche même pas que mon utilisateur @discourse est dans mon canal après l’avoir ajouté. Le nombre d’utilisateurs dans l’interface utilisateur de Slack ne change pas, et si je consulte tous les membres du canal, mon utilisateur d’application n’y figure pas. Je suppose que c’est une lacune de Slack lui-même, et non de Discourse.
Ce serait bien de ne pas avoir à inviter l’utilisateur Discourse dans chaque canal Slack de mon équipe (Dieu sait que nous en avons une tonne), mais je suppose que cela doit être une limitation de Slack pour les applications ? Aussi, y a-t-il une amélioration que nous pourrions ajouter au plugin de chat de Discourse pour détecter ce problème et afficher un message d’erreur plus utile ?
La première fois que j’ai essayé de configurer cela, j’ai été surpris d’avoir à ajouter l’application Discourse à chaque canal. Je vais surveiller toute possibilité de contourner cette exigence.
Il est possible qu’un message d’erreur soit renvoyé par Slack à Discourse lorsqu’une action échoue parce que l’application n’a pas les autorisations pour publier depuis/vers le canal. Si c’est le cas, utiliser cette erreur pour ajouter une note à l’entrée du canal sur Discourse serait utile pour déboguer ce type de problème. Je ne sais pas si cela sera possible, mais je vais vérifier si Slack renvoie des informations utiles à Discourse dans ce cas.
Cela semble correct. Je n’ai testé cela qu’avec Slack. Lorsque Discourse tente de publier dans un canal Slack auquel l’application n’a pas été ajoutée, un avertissement s’affiche sur la page des intégrations de chat et un message d’erreur apparaît au-dessus du canal concerné :
Il serait peut-être possible que Discourse analyse ce message d’erreur afin d’informer l’utilisateur des actions nécessaires pour résoudre le problème.
Lorsque j’essaie de publier sur Discourse avec une commande slash depuis un canal auquel l’application n’a pas été ajoutée, une erreur Job exception: break from proc-closure est levée sur Discourse à partir de slack_command_controller.rb:86. Je ne suis pas certain qu’il y ait suffisamment d’informations renvoyées par Slack pour générer un message d’erreur pertinent dans ce cas.