Comment publier un message dans Microsoft Teams depuis C++ (WinHTTP + Graph API)
Vous souhaitez publier automatiquement dans une conversation Microsoft Teams —
C’est là que l’ API Microsoft Graph s’avère utile.
Dans cet article, nous présenterons un exemple de code C++ utilisant WinHTTP et les étapes de configuration d’authentification API nécessaires étape par étape.
🔧 Préparation requise (Configuration de l’authentification de l’API Microsoft Graph)
1. Inscription de l’application sur le portail Azure
Tout d’abord, pour utiliser l’API Microsoft Graph, vous devez enregistrer une application sur Azure.
- Accédez au Portail Azure
- Microsoft Entra ID > + Ajouter > Inscriptions d’applications > Nouvelle inscription
- Entrez un nom d’application arbitraire et cliquez sur “S’inscrire”
2. Ajouter des autorisations d’API
- Allez dans le menu de gauche “Autorisations de l’API”
- Microsoft Graph > Sélectionner les autorisations, recherchez les portées ci-dessous et cliquez sur Mettre à jour les autorisations
- Chat.ReadWrite
- User.Read
※ Si vous souhaitez publier sur un canal,
ChannelMessage.Sendest également requis
3. Notez l’ID client et l’ID locataire
Gardez une trace des deux éléments suivants affichés dans l’onglet “Vue d’ensemble” :
- ID d’application (client)
- ID de répertoire (locataire)
4. Créer un secret client
- Allez dans l’onglet “Certificats et secrets”
- “Nouveau secret client” > définissez une date d’expiration et cliquez sur “Ajouter”
- Assurez-vous de noter la valeur (secret) affichée à ce moment-là
🔐 Obtention du jeton d’accès (OAuth2)
Nous utiliserons le flux client_credentials pour l’obtention.
Exécutez la commande ci-dessous avec curl pour obtenir le jeton d’accès.
| |
Exemple de réponse
| |
Utilisez cet access_token pour appeler l’API Microsoft Graph.
💬 Exemple C++ pour publier dans une conversation Teams
Voici un exemple C++ qui utilise WinHTTP pour publier dans une conversation.
| |
🔍 Comment obtenir l’ID de conversation
L’ID de conversation peut être vérifié avec GET /v1.0/me/chats.
| |
Exemple de réponse
| |
📌 Points d’attention
- Cet exemple est une implémentation minimale. En production :
- Gestion de l’expiration des jetons
- Vérification des certificats HTTPS
- Amélioration de la gestion des erreurs
- Les publications de canal utilisent teams/{team-id}/channels/{channel-id}/messages.
- L’envoi de pièces jointes nécessite un traitement multipart ou l’API Graph Drive.
Résumé
📎 Résumé
| Fonctionnalité | Aperçu |
|---|---|
| Graph API | API officielle pour interagir avec Teams |
| Inscription de l’application | Procédures d’authentification requises sur Azure |
| Jeton d’accès | Obtenu via OAuth2 et utilisé pour les requêtes |
| Implémentation C++ | Appelle l’API Graph en utilisant WinHTTP |
🚀 Prochaines étapes
Pour des exemples plus avancés, les éléments suivants sont également possibles :
- Publication sur un canal d’équipe (
/teams/{team-id}/channels/...) - Publication avec pièces jointes
- Basculement entre les comptes bot et les comptes utilisateurs
- Implémentation C++ complète, y compris l’obtention de jetons
N’hésitez pas à commenter si vous avez des demandes !
