Configurar notificações do Discord com o plugin discourse-chat-integration

Você pode tentar atualizar a página? Será necessário atualizar após ativar o plugin.

3 curtidas

Agora eu vejo, obrigado!

E aí, pessoal. Estou recebendo um erro ao configurar esse plugin com o Discord. O canal foi criado e o webhook configurado com o plugin.

Agora estou recebendo o seguinte erro:

E quando envio um teste, recebo este erro:

E os logs mostram isso:

Qualquer ajuda será muito apreciada.

Você pode compartilhar o conteúdo da aba “info” para isso? Se puder copiar e colar, seria ótimo — é difícil ler logs em uma captura de tela.

1 curtida

Mensagem (2 cópias relatadas)

Provedor de teste falhou {:error_key=>nil, :message=>{:content=>"", :embeds=>[{:title=>"FAYN Rule Book [Alliance/Announcements] ", :color=>12525102, :description=>"[image] \nFAYN é um grupo de Corporações trabalhando juntas como um coletivo para crescer tanto o indivíduo quanto o grupo dentro deste conjunto de diretrizes e regras. \nFerramentas de Administração\nComo parte da FAYN, você é obrigado a ter TODOS os seus personagens, por mais insignificantes que sejam, vinculados ao seu personagem principal no SeAT. Isso faz parte dos requisitos de recrutamento e apoia a gestão contínua da nossa corporação...", :url=>"https://forum.darksideoftheeclipse.co.uk/t/fayn-rule-book/45/1", :author=>{:name=>"@PJHustle", :url=>"https://forum.darksideoftheeclipse.co.uk/u/PJHustle", :icon_url=>"https://forum.darksideoftheeclipse.co.uk/user_avatar/forum.darksideoftheeclipse.co.uk/pjhustle/45/4_2.png"}}]}, :response_body=>"<html>\r\n<head><title>403 Forbidden</title></head>\r\n<body>\r\n<center><h1>403 Forbidden</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n"}

Backtrace

/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:43:in `rescue in test'
/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:22:in `test'
actionpack-6.0.3.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.0.3.3/lib/abstract_controller/base.rb:195:in `process_action'
actionpack-6.0.3.3/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.0.3.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.0.3.3/lib/active_support/callbacks.rb:112:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:354:in `block in with_resolved_locale'
i18n-1.8.5/lib/i18n.rb:313:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:354:in `with_resolved_locale'

Env

HTTP HOSTS: forum.darksideoftheeclipse.co.uk

A primeira providência deve ser entrar em contato com o suporte do Discord com essas informações e perguntar por que isso está acontecendo.

1 curtida

talvez sim. mas vou passar. não sou desenvolvedor e não faço a menor ideia do que fazer ou o que perguntar. não entendo muito disso. só estou postando porque antes funcionava, agora não funciona mais.

será que é porque o Discord está mudando coisas? não sei.
Tenho a sensação de que não serei o único a ter esse problema em breve.

É útil compartilhar, estamos apenas apontando que, com base nos dados, parece que o problema está do lado do Discord. Não temos como controlar isso.

1 curtida

Encontrei o problema.

O webhook do Discord mudou de discordapp.com para discord.com.
Quando alterei o webhook de discord.com para discordapp.com, ele começou a funcionar.

Então, por enquanto, está funcionando. Enviei um ticket para o suporte do Discord sobre esse problema.
Mas não tenho certeza de onde está o problema agora: no Discord ou no aplicativo?

edição: alterei a URL do webhook no Discourse.

5 curtidas

Obrigado por postar a solução. Eu estava ficando louco tentando depurar isso.

Olá.

Estou enfrentando o mesmo problema. Aparece a mensagem DiscourseChat::ProviderError ao clicar em testar em Plugins - Integrações de chat, e recebo um erro 403 proibido da URL do Webhook do Discord.

Alguma dica para corrigir isso?

Você ainda precisa alterar sua URL do webhook para usar o domínio discordapp.com em vez de discord.com.

4 curtidas

E aí. Isso resolveu meu problema. Obrigado.

Acho que o próprio plugin deveria suportar o novo formato de domínio da API em uma nova atualização também.

2 curtidas

Ótimo, isso também funcionou para mim.


Estou recebendo esses erros no console e o canal do plugin não está carregando. Será por causa de um tema? Preciso desativá-lo?

Você precisa verificar a configuração do seu servidor, pois ela varia dependendo de você estar usando Apache ou Nginx. Você pode pesquisar essa mensagem :love_you_gesture:

Sobre o assunto, seria possível adicionar miniaturas e reduzir a mensagem citada no Discord? Ela é muito longa e quebra nosso chat :neutral_face:

A propósito, obrigado pelo trabalho de vocês (de toda a comunidade), como sempre!

Houve um erro no log:

/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:43:in `rescue in test'
/var/www/discourse/plugins/discourse-chat-integration/app/controllers/chat_controller.rb:22:in `test'
actionpack-6.1.4.1/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
actionpack-6.1.4.1/lib/abstract_controller/base.rb:228:in `process_action'
actionpack-6.1.4.1/lib/action_controller/metal/rendering.rb:30:in `process_action'
actionpack-6.1.4.1/lib/abstract_controller/callbacks.rb:42:in `block in process_action'
activesupport-6.1.4.1/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
/var/www/discourse/app/controllers/application_controller.rb:397:in `block in with_resolved_locale'
i18n-1.8.10/lib/i18n.rb:314:in `with_locale'
/var/www/discourse/app/controllers/application_controller.rb:397:in `with_resolved_locale'

Eu apenas mudei a URL do webhook de discord.com para discordapp.com e tudo está OK :+1:

3 curtidas

Minha motivação inicial ao buscar uma integração entre Discourse e Discord foi injetar posts sinalizados no Discord para notificação e revisão mais rápidas entre uma equipe. O plugin padrão não oferece suporte a isso. Agora, a injeção de posts sinalizados no Discord é suportada aqui.

Observe que provavelmente existe uma maneira mais “ruby” de fazer isso. Talvez o on(:reviewable) devesse usar uma fila específica para reviewables, e passar a flag booleana de “sinalizado” é um tanto uma gambiarra. Talvez existam outras coisas mais genéricas a serem feitas com um reviewable, mas isso atende aos meus objetivos.

Avance com cautela: não pretendo tentar enviar essa contribuição para o projeto principal (upstream), pois não planejo dar suporte a nada além do Discord, nem tenho planos de dedicar mais tempo a quaisquer outras questões de melhoria identificadas acima.

Acaba ficando assim…

1 curtida

Olá a todos.
O Webhook com o Discord está funcionando corretamente… exceto que o conteúdo da mensagem está vazio. O tópico/resposta do Discourse não é exibido no servidor Discord.

Se eu incluir um ‘conteúdo da mensagem do chat integration discord’, essa parte é bem incluída.

Obrigado.

Consegui fazer funcionar, finalmente, com tentativa e erro. Para aqueles que vierem depois de mim…

Estas instruções dizem:

:warning: NOTA : Se você receber um erro ao usar o webhook, certifique-se de que o nome de domínio seja discordapp.com em vez de discord.com.

Quando copiei meu webhook do Discord, ele estava no seguinte formato. https://discordapp.com/api/webhooks/xxx/yyy-zzz-aaa

então, as instruções acima são consistentes com o URL que o Discord fornece.

O problema surge ao seguir as instruções. As configurações do plugin rejeitam o esquema de URL que é documentado e aceitam o esquema de URL que é proibido. É como se em algum lugar do código faltasse o “!”

Felizmente, o URL do webhook funciona quando uso o segundo endereço, como mostrado na captura de tela abaixo.

Então, algumas sugestões que poderiam resolver este problema, para o próximo que talvez não faça tantas tentativas e erros quanto eu:

  1. Atualize o validador para que “discordapp.com” passe e “discord.com” falhe
  2. Atualize o validador para que ambos “discordapp.com” e “discord.com” passem
  3. Atualize a redação nas instruções para não ter essa nota contraditória.

Sugestões bônus,
sob a configuração “Configurar Discourse”:
Passo 0: após instalar o plugin, ative o plugin
passo 1: forneça uma captura de tela
passo 3: forneça uma captura de tela

Estou um pouco preocupado que o Discord pare de suportar o esquema “errado” que estou usando atualmente, então gostaria que o Discourse corrigisse isso para que eu não precise usar a solução alternativa antes que o Discord quebre meu URL alternativo.