Enviando mensagens para o Discord: mudanças entre as edições

De ISPUP!
Ir para navegação Ir para pesquisar
Criou página com '== Introdução == Esse pequeno artigo servirá para nos ajudar a enviar mensagens para um canal de texto do Discord. Mas para qual finalidade? Algumas empresas utilizam o '''Discord''' para trabalho no dia a dia, criando seus canais para diversas discussões e nesse momento podemos ter um '''canal de alertas''' para que nossos servidores '''GNU/Linux''' possam enviar algum alerta específico, para nos avisar de que algo está errado. A velocidade de comunicação pode n...'
 
Sem resumo de edição
Linha 25: Linha 25:


== Script em Python para envio das notificações ==
== Script em Python para envio das notificações ==
O script abaixo é bem simples e você só precisa colar a URL do '''webhook''' que você copiou, na variável '''url_webhook'''. O script pode ser rodado em linha de comando e '''passando apenas 2 parâmetros''': '''o título da notificação''' e a '''mensagem da notificação''' que você quer enviar. <pre>
#!/usr/bin/python3
# Script em python para envio de notificacoes para um canal do Discord via webhooks
# Sao passados 2 argumentos em linha de comando:
#    <titulo da mensagem>
#    <texto da mensagem>
# Exemplo: ./envia_notificacao_discord.py "ALERTA RJO-DC01-DNS-RECURSIVO01" "Falha no sistema de arquivos."
# Para funcionar eh necessario instalar: pip install discord discord-webhook
# Autor: Marcelo Gondim - gondim at gmail.com
# Data: 21/05/2023
# Versao: 1.0
#
# envia_notificacao_discord.py is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
url_webhook = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
nome_bot = "Bot ISPUP!"
link_icone = "https://wiki.ispup.com.br/w/resources/assets/ispup_logo_clean.jpeg"
import sys
title = sys.argv[1]
msg = sys.argv[2]
from discord_webhook import DiscordWebhook, DiscordEmbed
webhook = DiscordWebhook(url='%s' %(url_webhook))
embed = DiscordEmbed(title='%s' %(title), description='%s' %(msg), color='03b2f8')
embed.set_author(name='%s' %(nome_bot), icon_url='%s' %(link_icone))
webhook.add_embed(embed)
response = webhook.execute(embed)
</pre>

Edição das 17h26min de 21 de maio de 2023

Introdução

Esse pequeno artigo servirá para nos ajudar a enviar mensagens para um canal de texto do Discord. Mas para qual finalidade? Algumas empresas utilizam o Discord para trabalho no dia a dia, criando seus canais para diversas discussões e nesse momento podemos ter um canal de alertas para que nossos servidores GNU/Linux possam enviar algum alerta específico, para nos avisar de que algo está errado. A velocidade de comunicação pode nos salvar de muitos problemas evitando que algo se torne mais grave.

Por isso resolvi fazer esse doc bem simples para mostrar como é fácil e deixar registrado aqui como fonte de consulta futura.

Preparando o ambiente

Usaremos como de costume nosso bom Debian GNU/Linux mas você pode adaptar essa documentação para o seu ambiente. Nesse momento instalaremos o python3-pip e dependências:

# apt install python3-pip
# pip install discord discord-webhook

Configurando o canal no Discord

Nesse momento assumirei que você já tem seu servidor e sabe como criar um canal. Vamos supor que você tenha o canal de texto #alertas já criado e vamos usá-lo para receber nossas notificações dos servidores.

Você vai clicar na engrenagem do canal de texto, que nesse exemplo, é o #alertas para iniciarmos a configuração.

Na sequência você vai clicar em Integrações conforme acima.

1) Vamos usar um webhook para nos permitir enviar mensagens para o nosso canal de texto.

2) Aqui daremos um nome para ele.

3) Selecionamos o canal de texto para onde serão enviadas as nossas notificações. Nesse caso já estará selecionado nosso canal #alertas.

4) Clique ali para copiar a URL que usaremos em nosso script em Python, para enviar as notificações. Não esqueça de salvar esse webhook que acabamos de alterar.

Script em Python para envio das notificações

O script abaixo é bem simples e você só precisa colar a URL do webhook que você copiou, na variável url_webhook. O script pode ser rodado em linha de comando e passando apenas 2 parâmetros: o título da notificação e a mensagem da notificação que você quer enviar.

#!/usr/bin/python3
# Script em python para envio de notificacoes para um canal do Discord via webhooks
# Sao passados 2 argumentos em linha de comando:
#    <titulo da mensagem>
#    <texto da mensagem>
# Exemplo: ./envia_notificacao_discord.py "ALERTA RJO-DC01-DNS-RECURSIVO01" "Falha no sistema de arquivos."
# Para funcionar eh necessario instalar: pip install discord discord-webhook
# Autor: Marcelo Gondim - gondim at gmail.com
# Data: 21/05/2023
# Versao: 1.0
#
# envia_notificacao_discord.py is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
url_webhook = "https://discord.com/api/webhooks/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
nome_bot = "Bot ISPUP!"
link_icone = "https://wiki.ispup.com.br/w/resources/assets/ispup_logo_clean.jpeg"

import sys

title = sys.argv[1]
msg = sys.argv[2]

from discord_webhook import DiscordWebhook, DiscordEmbed

webhook = DiscordWebhook(url='%s' %(url_webhook))
embed = DiscordEmbed(title='%s' %(title), description='%s' %(msg), color='03b2f8')
embed.set_author(name='%s' %(nome_bot), icon_url='%s' %(link_icone))

webhook.add_embed(embed)
response = webhook.execute(embed)