Dominando o DingtalkChatbot: Automação de Robôs no DingTalk com Cenários Práticos

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"
             "![Ícone do tempo](https://exemplo.com/tempo.png)\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![Diagrama](https://exemplo.com/diagrama.png)",
    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![Gráfico](https://exemplo.com/grafico.png)",
    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.

Tags: DingTalk Python Webhook Automação Markdown

Publicado em 6-8 01:42 por Thomas