Comando `/discourse post` trava em "Carregando a transcrição..."

O comando de postagem do Discourse funciona apenas em um canal

Agora, isso provavelmente é culpa minha, mas não consigo descobrir. Revirei todos os tópicos sobre o assunto e adoraria uma ajuda. Verifiquei e revi duas vezes as permissões do meu aplicativo do Slack e posso confirmar que ele funciona 100%… apenas em um dos meus canais!

/discourse post 20

Então sei que o token de acesso está configurado e funcionando corretamente. No entanto, em todos os outros canais da minha equipe no Slack, o comando acima simplesmente exibe

Carregando a transcrição...

e é só isso. Todos esses são canais públicos e tentei todas as combinações possíveis de configurações. O único canal que funciona foi criado hoje, mas quando criei outro canal novo para testar, não funcionou. Nem sei por onde começar a solucionar esse problema. Os únicos registros dos quais tenho conhecimento no Discourse são

./launcher logs app

mas não parece haver nada lá. Que configuração posso ter deixado passar que permitiria que a postagem funcionasse apenas em um canal, e onde eu deveria procurar para depurar isso?

Este tópico foi desmembrado de

1 curtida

Verifique se você pode publicar do Discourse para os canais nos quais está tentando postar a partir do Discourse. Minha suposição é que o problema seja que você precisa adicionar o aplicativo que criou ao canal antes de poder postar nele ou a partir dele.

2 curtidas

@simon Acredito que possa ter sido isso! Serei honesto: estou um pouco confuso sobre como o aplicativo do Slack funciona. Como consegui executar comandos /discourse ... em qualquer canal do Slack e o “App” parecia estar instalado em nível global, parecia que eu havia “adicionado” o aplicativo de todas as formas necessárias. No entanto, quando eu explicitamente /invite o usuário do meu aplicativo Discourse em outro canal, ele começa a funcionar!

/invite @Discourse 
/discourse post 20

O que é muito chato nisso é que o Slack nem sequer me mostra que meu usuário @discourse está no meu canal depois que eu o adiciono. O número de usuários na interface do Slack não muda e, se eu visualizar todos os membros do canal, meu usuário do aplicativo não aparece na lista. Acredito que isso seja uma deficiência do próprio Slack, e não do Discourse.

Seria bom não precisar convidar o usuário do Discourse para cada canal do Slack da minha equipe (Deus sabe que temos uma tonelada de canais), mas imagino que isso deve ser uma limitação do Slack para aplicativos? Além disso, há alguma melhoria que possamos adicionar ao plugin de chat do Discourse para detectar esse problema e exibir uma mensagem de erro mais útil?

3 curtidas

A primeira vez que tentei configurar isso, fiquei surpreso por ter que adicionar o aplicativo do Discourse a cada canal. Vou ficar de olho em qualquer maneira de contornar essa exigência.

Possivelmente, uma mensagem de erro é retornada pelo Slack ao Discourse quando uma ação falha porque o aplicativo não tem permissão para postar no/de um canal. Se for esse o caso, usar o erro para adicionar uma notificação à entrada do Canal no Discourse seria útil para depurar esse tipo de problema. Não tenho certeza se isso será possível, mas vou verificar se o Slack retorna alguma informação útil ao Discourse para esse caso.

3 curtidas

Isso parece correto. Testei apenas com o Slack. Quando o Discourse tenta postar em um canal do Slack ao qual o aplicativo não foi adicionado, um aviso é exibido na página de Integrações de Chat e uma mensagem de erro aparece acima do canal com o problema:

Clicar no ícone de erro de um canal ao qual o aplicativo não foi adicionado revela o problema:

{
  "error_key": null,
  "request": "",
  "response_code": "200",
  "response_body": "{\"ok\":false,\"error\":\"not_in_channel\"}"
}

Possivelmente, o Discourse poderia analisar essa mensagem de erro para fornecer ao usuário detalhes sobre o que precisa ser feito para corrigir o problema.

Quando tento postar no Discourse com um comando de barra a partir de um canal ao qual o aplicativo não foi adicionado, um erro Job exception: break from proc-closure é lançado no Discourse a partir de slack_command_controller.rb:86. Não tenho certeza se há informações suficientes retornadas pelo Slack para criar uma mensagem de erro significativa para este caso.

2 curtidas

Também poderíamos responder a esse erro tentando ingressar no canal, solicitando a permissão channels.join.

2 curtidas

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.