Todos os trabalhos incluem tarefas repetitivas. Seja um atendente de suporte analisando pedidos de ajuda frequentes, um líder de equipe monitorando metríticas de desempenho ou um engenheiro de software verificando processos de negócios, essas tarefas muitas vezes recorrem – diariamente, semanalmente ou até mesmo horáriamente.
Felizmente, você pode automatizar muito deste trabalho com Python. É uma linguagem versátil que é ótima para lidar com dados e fácil de usar para tarefas de automação. Imagine coletar metríticas de desempenho: manualmente, você pode precisar escavar através de vários painéis. Com um script em Python, você pode obter esses dados automaticamente, destacar os pontos chave e enviar um relatório compilado para seu chefe. Isso não só salva tempo quanto reduz o risco de erros.
Neste tutorial, vamos olhar para o caso específico de executar código Python para buscar previsão do tempo para um local específico e enviar um resumo dessa previsão para o Microsoft Teams, o plataforma de comunicação de equipe do Microsoft. Vamos cobrir todos os passos necessários para configurar um webhook do Teams, um programa Python que usa o webhook para enviar mensagens, e configurar um agendamento para que o script Python possa executar em um padrão regular. Este exemplo específico é sobre relatar uma previsão do tempo, mas claro, você pode trocar este ‘logica de negócios’ por qualquer coisa; todas as configurações e o código para enviar a mensagem para o Teams ficarão exatamente iguais.
Nós vamos usar o DataLab neste tutorial, já que ele tem funcionalidades integradas para armazenar segredos com segurança como variáveis de ambiente, além de agendar seu código Python com apenas algumas cliques. Para seguir com o tutorial, tudo o que você precisa é uma conta da Microsoft (para publicar mensagens) e uma conta no DataCamp (para usar o DataLab), ambas das quais podem ser criadas de graça!
Você pode também verificar nossa guia separada sobre como enviar mensagens do Slack com Python.
Vamos mergulhar!
1. Configurar um Webhook do Microsoft Teams
Dentro do Microsoft Teams, existem equipes, que por sua vez têm canais. É possível adicionar tais chamados de ‘apps’ a esses canais. Você pode pensar em uma aplicação do Teams como uma extensão ou complemento do MS Teams para um propósito específico. Existem apps para integrar Jira, Zendesk, Salesforce e muitos outros com o Teams, para você ser notificado dentro do Teams sobre coisas que acontecem, mas você também pode executar ações nestas apps a partir do interior do Teams. Para nosso pequeno projeto, precisaremos instalar uma dessas apps, especificamente, a aplicação “Incoming Webhook”, mantida pela própria Microsoft.
Para começar, certifique-se de ter uma conta Microsoft com acesso a Teams. Verifique se você é membro de um time e tem permissão para adicionar aplicativos a canais neste time. Se não, contate o seu departamento de TI e envie-lhes este link.
A seguir, vá ao canal do time que você deseja publicar mensagens. No nosso exemplo, este é o canal “Geral” dentro do time “Heróis de Análise de Dados”:
Clique no símbolo + à direita do nome do canal; você verá uma visão de apps que você pode adicionar ao canal:
Clique em “Obter mais aplicativos”. Você vai para um mercado de aplicativos totalmente funcional que você pode adicionar a MS Teams:
No campo de busca, digite “Webhook de Entrada”. O app que aparece primeiro é o que precisamos:
Clique em Adicionar, e depois em “Adicionar a um time”. Agora, você é solicitado a especificar para qual time ou canal você quer enviar mensagens:
O exemplo deste tutorial é o canal “Geral” no time “Heróis de Análise de Dados”, mas isso provavelmente será diferente para você. Em seguida, clique em “Configurar um conector”. Ainda aparece outra tela solicitando algumas configurações de webhook adicionais.
Especifique um nome para o webhook de entrada; as mensagens serão enviadas com este nome, então escolha algo que faz sentido, por exemplo, “Mensageiro Python”. Você também pode fazer upload de uma imagem personalizada, mas isso é opcional. Finalmente, clique em “Criar”. Aparece um URL de webhook!
Você precisará dessa URL de webhook no seu programa Python, então certifique-se de copiá-la para a área de transferência e salve-a algum lugar (por exemplo, na sua aplicação de notas) para uso futuro. Finalmente, clique em “Concluído”. Na visão geral que aparece, você verá uma visão geral de todos os conectores no canal que você selecionou.
Você pode simplesmente fechar esta tela. No canal que você acabou de configurar o webhook de entrada para, você deveria ver uma mensagem correspondente confirmando a configuração:
E pronto! Agora, seu canal Microsoft Teams está pronto para receber mensagens através do webhook.
2. Escreva a Lógica de Negócios em Python
Parabéns por chegar até aqui! Com o Webhook de Entrada em Teams configurado, chegou a hora da parte divertida: escrever Python. Vamos começar escrevendo algum código Python para nossa ‘lógica de negócios’ para resolver a tarefa em mãos.
Se precisar de um refúgio em escrever código Python, nosso curso Introdução ao Python é o local ideal para começar.
Você pode criar um planilha vazia de raiz, o que é útil se você já sabe o que programa Python você quer automatizar e integrar com o Microsoft Teams.
Se você está aqui para aprender sobre os conceitos, você pode começar com uma planilha de exemplo que resume o previsão do clima para uma cidade que você pode especificar. Todos os dias, haverá novos dados, portanto, isso é um ótimo candidato para relatórios diários! Clique no botão “Executar Código” abaixo para criar esta planilha.
Execute e edite o código deste tutorial online
Em ambos os casos, você deve acabar com um caderno DataLab com toda a sua lógica de negócios codificada:
3. Enviando uma Mensagem para o Teams
Então, webhook do Teams: verificado. Lógica de negócios: verificada. Para integrar o notebook Python com o Microsoft Teams, precisamos fazer duas coisas: armazenar a URL do webhook no caderno DataLab e escrever algum código Python para enviar uma mensagem ao canal do Teams.
Armazenar a URL do webhook
Nosso notebook Python precisa da URL do webhook para enviar a mensagem para o canal certo do Teams. Você poderia simplesmente copiar e colar esta URL dentro de uma célula de código do seu notebook. No entanto, essa não é uma abordagem segura e não é recomendada. A URL do webhook é meio que secreta. Se você compartilhar seu notebook com outra pessoa, ela poderá ver a URL do webhook e poderá enviar spam para o seu canal do Teams!
Essa abordagem também exigiria que você repetisse essa cópia e colagem em cada caderno que você deseja enviar mensagens para o Teams. Se você quiser atualizar a URL do webhook por algum motivo, terá que revisar e editar cada caderno.
Uma abordagem mais segura e escalável é armazenar o token da URL do webhook em uma chamada variável de ambiente. Quando você conectar essa variável de ambiente, ela se tornará disponível em sua sessão Python. No seu caderno:
- Clique na aba “Ambiente” no lado esquerdo
- Clique no ícone de mais ao lado de “Variáveis de Ambiente”
- No modal “Adicionar Variáveis de Ambiente”:
- Defina “Nome” como MS_TEAMS_WEBHOOK_URL
- No campo “Valor”, cole a URL de Webhook que você salvou anteriormente.
- Defina o “Nome do Conjunto de Variáveis de Ambiente” como “Microsoft Teams” (isso pode ser qualquer coisa, realmente)
Depois de preencher todos os campos, clique em “Criar”, “Próximo” e, finalmente, “Conectar”. Suas sessões de planilha serão reiniciadas e MS_TEAMS_WEBHOOK_URL agora estará disponível como uma variável de ambiente em sua planilha. Você pode verificar isso criando uma célula Python com o seguinte código e executando-a:
import os webhook_url = os.environ["MS_TEAMS_WEBHOOK_URL"] print(webhook_url)
Se você quiser reutilizar as mesmas credenciais da conta de serviço em outra planilha, você não precisa configurar a variável de ambiente novamente: você pode reutilizar a variável de ambiente em outras planilhas.
Código Python para enviar a mensagem do Microsoft Teams
Com MS_TEAMS_WEBHOOK_URL bloqueado e pronto, agora podemos escrever código Python para enviar uma mensagem para Teams! Para isso, usaremos o pacote open-source pymsteams, que fornece um envoltório conveniente para a intricada API de envio de mensagens para Teams. Vamos instalá-lo e importá-lo, juntamente com o pacote os para ler as variáveis de ambiente:
!pip install pymsteams import pymsteams import os
Agora, podemos criar uma chamada de “connector card” – um termo elegante para uma mensagem de texto rico em Teams –, adicionar algum texto a ela e enviá-la:
card = pymsteams.connectorcard(os.environ["MS_TEAMS_WEBHOOK_URL"]) card.text("Hello Teams!") assert card.send()
Execute este código! Você deveria ver esta mensagem aparecer no canal:
Excelente! Esta foi uma mensagem de exemplo sem sentido, mas você também pode criar uma mensagem baseada no resultado de sua lógica de negócios, como fizemos no livro de trabalho de exemplo:
card = pymsteams.connectorcard(os.environ["MS_TEAMS_WEBHOOK_URL"]) card.title("Weather Forecast") card.text("\n".join([ f"Weather for {CITY} in the next three days:", f"- Min temperature: {weather_df['temperature_2m'].min()} {unit_temperature}", f"- Max temperature: {weather_df['temperature_2m'].max()} {unit_temperature}", f"- Total precipitation: {weather_df['precipitation'].sum():.2f} {unit_prec}" ])) assert card.send()
Com o seguinte resultado:
Por fim, você também pode aproveitar a variável de ambiente DL_WORKBOOK_ID
para incluir um botão que vincula ao seu livro de trabalho caso você queira incluir uma forma fácil de ir de Teams para o livro de trabalho DataLab que está alimentando esta mensagem:
card = pymsteams.connectorcard(os.environ["MS_TEAMS_WEBHOOK_URL"]) card.title("Weather Forecast") card.text("\n".join([ f"Weather for {CITY} in the next three days:", f"- Min temperature: {weather_df['temperature_2m'].min()} {unit_temperature}", f"- Max temperature: {weather_df['temperature_2m'].max()} {unit_temperature}", f"- Total precipitation: {weather_df['precipitation'].sum():.2f} {unit_prec}" ])) card.addLinkButton("View detailed forecast", f"https://www.datacamp.com/datalab/w/{os.environ.get('DL_WORKBOOK_ID', 'invalid')}/edit") assert card.send()
Com o seguinte resultado:
Muito legal, não é?!
4. Automatize!
Você criou um script em Python que realiza uma análise útil e envia um resumo desta análise para o Teams, incluindo um link de volta ao caderno completo para aqueles interessados em mais detalhes. Ótimo! Agora, imagine se você pudesse configurar este caderno para ser executado automaticamente, diariamente ou semanalmente, mantendo você constantemente atualizado com resultados frescos. Bem, a grande notícia é que você pode! O DataLab oferece o recurso de execuções agendadas para tornar isso possível.
- Na barra de menu superior, clique em Executar > Agendar Execução
- Configure o agendamento como quiser:
- Configure o caderno para ser executado automaticamente diariamente ou semanalmente. Para agendamentos semanais, escolha o dia e horário exatos.
- Adicione usuários do DataCamp que você deseja ser informados sempre que o notebook for concluído (com sucesso ou com falha). Isso é útil para falhas, para que você possa entrar e corrigir quando ocorrer um problema.
Se configurado como na captura de tela acima, o notebook agora será executado às 9:30 da manhã no horário local todos os dias, o que significa que uma mensagem será postada no canal do Teams especificado todas as manhãs.
Automatizar ou não
Nem toda tarefa é uma boa candidata para automação. Isso depende de quão freqüentemente você a realiza, quanto tempo leva para fazer manualmente e o tempo que levaria para criar um script em Python para automatizá-la. Por exemplo, considere um relatório anual que leva 20 minutos para compilar à mão. Se levar você metade de um dia para escrever um script para isso, serão muitos anos antes de você alcançar o ponto de equilíbrio no tempo gasto na automação!
Aqui está um resumo em formato de tabela:
Então, se uma tarefa que você tinha que fazer diariamente levava 5 minutos antes, você pode gastar até 6 dias tentando automatizar essa tarefa. Se você gastar menos tempo do que isso na automação, você terá ganho tempo (contado ao longo de cinco anos).
Conclusão
Configurar o DataLab para enviar mensagens ao Microsoft Teams envolve navegar por várias telas inicialmente. Mas uma vez que você tenha tudo configurado com a URL do webhook no DataLab, enviar uma mensagem é só sobre adicionar algumas linhas de código em Python – é realmente simples! A melhor parte? Você pode automatizar quase qualquer script em Python e notificar diretamente seus stakeholders onde eles estão: no Teams.
Gone are the days of setting reminders for repetitive, mundane tasks. Bem-vindo à era de fluxos de trabalho eficientes e automatizados, onde você não precisa trocar entre ferramentas. Tudo o que você precisa é abraçar o DataLab.
Remember, Se você precisa de uma atualização na escrita de código em Python, nosso curso Introdução ao Python é o local ideal para começar.
Source:
https://www.datacamp.com/tutorial/how-to-send-microsoft-teams-messages-with-python