Como postar mensagens no Microsoft Teams a partir de C++ (WinHTTP + Graph API)
Quer postar automaticamente no chat do Microsoft Teams?
É aí que a Microsoft Graph API entra em ação.
Neste artigo, apresentarei passo a passo um exemplo de código em C++ usando WinHTTP e as etapas necessárias de autenticação da API.
🔧 Preparações necessárias (Configuração de autenticação da Microsoft Graph API)
1. Registrar o aplicativo no portal do Azure
Primeiro, para usar a Microsoft Graph API, você precisa registrar um aplicativo no Azure.
- Acesse o Azure Portal
- “Microsoft Entra ID” > "+ Adicionar" > “Registro de aplicativo” > “Novo registro”
- Insira qualquer nome para o aplicativo e clique em “Registrar”
2. Adicionar permissões da API
- Vá para o menu esquerdo “Permissões de API”
- Em “Microsoft Graph” > “Adicionar uma permissão”, pesquise pelos seguintes escopos e clique em “Atualizar permissões”
- Chat.ReadWrite
- User.Read
※ Se você deseja postar em um canal,
ChannelMessage.Sendtambém é necessário
3. Anote o ID do cliente e o ID do locatário (tenant)
Mantenha as seguintes 2 informações que aparecem na aba “Visão geral”:
- ID do aplicativo (cliente)
- ID do diretório (locatário)
4. Criar o segredo do cliente
- Vá para a aba “Certificados e segredos”
- “Novo segredo do cliente” > Defina uma data de expiração e clique em “Adicionar”
- Anote imediatamente o valor (segredo) exibido na tela
🔐 Obtendo o token de acesso (OAuth2)
Para obtê-lo, usaremos o fluxo client_credentials.
Execute o comando abaixo com curl para obter o token de acesso.
| |
Exemplo de resposta
| |
Usaremos este access_token para chamar a Microsoft Graph API.
💬 Exemplo em C++ para postar no chat do Teams
Aqui está um exemplo em C++ para postar no chat usando WinHTTP.
| |
🔍 Como obter o ID do chat
O ID do chat pode ser verificado em GET /v1.0/me/chats.
| |
Exemplo de resposta
| |
📌 Pontos de atenção
- Este exemplo é uma implementação mínima. Em produção:
- Tratamento de expiração de token
- Verificação de certificado HTTPS
- Aprimoramento do tratamento de erros
- Para postar em um canal, use teams/{team-id}/channels/{channel-id}/messages.
- Enviar arquivos anexos requer processamento multipart ou a API do Graph Drive.
Resumo
📎 Resumo
| Funcionalidade | Visão Geral |
|---|---|
| Graph API | API oficial para interagir com o Teams |
| Registro do aplicativo | Procedimentos de autenticação necessários no Azure |
| Token de acesso | Obtido via OAuth2, usado para solicitações |
| Implementação em C++ | Chama a Graph API usando WinHTTP |
🚀 Próximos passos
Como exemplos mais avançados, também é possível:
- Postagem no canal da equipe (
/teams/{team-id}/channels/...) - Postagem com arquivos anexos
- Alternância entre conta de bot ou conta de usuário
- Implementação completa em C++ incluindo obtenção do token
Se você tiver alguma dúvida, sinta-se à vontade para comentar!
