DingtalkChatbot é uma biblioteca Python que simplifica o envio automatizado de mensagens para grupos no DingTalk, uma plataforma de comunicação empresarial. Ele permite integração com webhooks personalizados para notificações, monitoramento de dados e colaboração em equipe.
Instalação e Configuração Inicial
Para começar, clone o repositório do projeto usando o Git:
git clone https://gitcode.com/gh_mirrors/di/DingtalkChatbot
A classe principle, DingtalkChatbot, está localizada no módulo dingtalkchatbot/chatbot.py. Inicialize uma instância fornecendo o webhook do robô:
from dingtalkchatbot.chatbot import DingtalkChatbot
assistant = DingtalkChatbot(webhook='https://oapi.dingtalk.com/robot/send?access_token=SEU_TOKEN')
Se a configuração de segurança estiver ativada, passe o parâmetro secret:
assistant = DingtalkChatbot(webhook='https://oapi.dingtalk.com/robot/send?access_token=SEU_TOKEN', secret='SUA_CHAVE_SECRETA')
Cenário 1: Robô de Previsão do Tempo com Markdown
Use mensagens Markdown para enviar informações formatadas, como previsões meteorológicas. O método send_markdown suporta texto rico e imagens.
# Enviar informações do tempo em formato Markdown
assistant.send_markdown(
titulo="Previsão para São Paulo",
conteudo="#### Temperatura: 22°C, Chuva leve\n"
"\n"
"Atualizado às 14:00 [Saiba mais](https://clima.com)",
at_todos=True # Mencionar todos
)
Para mencionar usuários específicos, use o parâmetro at_mobiles:
assistant.send_markdown(
titulo="Alerta de Tempo",
conteudo="#### Mudança brusca prevista...",
at_mobiles=["+5511999999999"] # Mencionar número de telefone
)
Cenário 2: Votação e Feebdack com ActionCard
ActionCards são ideais para interações como votações ou coleta de opiniões. Eles podem ter múltiplos botões independentes ou um único botão de redirecionamento.
Criando um cartão de votação com múltiplos botões:
from dingtalkchatbot.chatbot import ActionCard
cartao = ActionCard(
titulo="Votação do Projeto",
texto="### Avalie o progresso\n\nDetalhes do projeto...\n",
botoes=[
{"titulo": "Aprovar", "url_acao": "https://voto.com/sim"},
{"titulo": "Abster", "url_acao": "https://voto.com/neutro"},
{"titulo": "Rejeitar", "url_acao": "https://voto.com/nao"}
],
orientacao_botoes=1, # Botões verticais
ocultar_avatar=1 # Esconder avatar do remetente
)
assistant.enviar_action_card(cartao)
Para um botão único com redirecionamento total:
cartao_simples = ActionCard(
titulo="Relatório do Projeto",
texto="### Atualização semanal\n\nResumo...\n",
titulo_unico="Ver Detalhes",
url_unica="https://projeto.com/detalhes"
)
assistant.enviar_action_card(cartao_simples)
Cenário 3: Feed de Notícias com FeedCard
FeedCards permitem exibir múltiplos itens de mídia em uma única mensagem, útil para recomendações ou atualizações de conteúdo. Cada item inclui título, descrição, imagem e link.
Cnostruindo um FeedCard com três itens:
from dingtalkchatbot.chatbot import FeedLink, ItemCartao
itens_feed = [
ItemCartao(titulo="Notícia 1", url_mensagem="https://exemplo.com/noticia1", url_imagem="https://exemplo.com/img1.jpg"),
ItemCartao(titulo="Notícia 2", url_mensagem="https://exemplo.com/noticia2", url_imagem="https://exemplo.com/img2.jpg"),
ItemCartao(titulo="Notícia 3", url_mensagem="https://exemplo.com/noticia3", url_imagem="https://exemplo.com/img3.jpg")
]
assistant.enviar_feed_card(itens_feed)
Expansão e Formatos Adicionais
DingtalkChatbot também suporta outros formatos de mensagem, como texto simples, imagens e links, ampliando as opções de automação. O arquivo dingtalkchatbot/samples.py no projeto contém exemplos adicionais para referência. A biblioteca é adaptável para sistemas de notificação internos, plataformas de alertas ou fluxos de trabalho automatizados.