Wie man Nachrichten von C++ an Microsoft Teams sendet (WinHTTP + Graph API)
Sie möchten automatisch in einen Microsoft Teams-Chat posten —
In solchen Fällen können Sie die Microsoft Graph API verwenden.
In diesem Artikel stellen wir Schritt für Schritt ein C++-Codebeispiel mit WinHTTP sowie die erforderlichen API-Authentifizierungsschritte vor.
🔧 Notwendige Vorbereitungen (Authentifizierungseinstellungen für die Microsoft Graph API)
1. App im Azure Portal registrieren
Um die Microsoft Graph API nutzen zu können, müssen Sie zunächst eine App in Azure registrieren.
- Besuchen Sie das Azure Portal
- “Microsoft Entra ID” > "+ Hinzufügen" > “App-Registrierungen” > “Neue Registrierung”
- Geben Sie einen beliebigen App-Namen ein und klicken Sie auf “Registrieren”
2. API-Berechtigungen hinzufügen
- Gehen Sie im linken Menü zu “API-Berechtigungen”
- Suchen Sie unter “Microsoft Graph” > “Berechtigungen auswählen” nach den folgenden Geltungsbereichen und klicken Sie auf “Berechtigungen aktualisieren”
- Chat.ReadWrite
- User.Read
※ Wenn Sie in einem Kanal posten möchten, ist auch
ChannelMessage.Senderforderlich
3. Client-ID und Mandanten-ID notieren
Notieren Sie sich die folgenden zwei Werte, die auf der Registerkarte “Übersicht” angezeigt werden:
- Anwendungs-ID (Client-ID)
- Verzeichnis-ID (Mandanten-ID)
4. Einen geheimen Clientschlüssel erstellen
- Gehen Sie zur Registerkarte “Zertifikate & Geheimnisse”
- “Neuer geheimer Clientschlüssel” > Legen Sie ein Ablaufdatum fest und klicken Sie auf “Hinzufügen”
- Notieren Sie sich unbedingt sofort den angezeigten Wert (Geheimnis)
🔐 Zugriffstoken abrufen (OAuth2)
Für den Abruf verwenden wir den Ablauf client_credentials.
Führen Sie den folgenden Befehl mit curl aus, um ein Zugriffstoken zu erhalten.
| |
Antwortbeispiel
| |
Verwenden Sie dieses access_token, um die Microsoft Graph API aufzurufen.
💬 C++-Beispiel zum Posten im Teams-Chat
Hier zeigen wir ein C++-Beispiel, das WinHTTP verwendet, um in einem Chat zu posten.
| |
🔍 So erhalten Sie die Chat-ID
Die Chat-ID kann mit GET /v1.0/me/chats überprüft werden.
| |
Antwortbeispiel
| |
📌 Wichtige Hinweise
- Dieses Beispiel ist eine Minimalimplementierung. Im produktiven Betrieb:
- Behandlung des Token-Ablaufs
- Überprüfung des HTTPS-Zertifikats
- Verbesserte Fehlerbehandlung
- Für Kanalbeiträge verwenden Sie teams/{team-id}/channels/{channel-id}/messages.
- Das Senden von Anhängen erfordert eine Multipart-Verarbeitung oder die Graph Drive API.
Zusammenfassung
📎 Zusammenfassung
| Funktion | Übersicht |
|---|---|
| Graph API | Offizielle API zur Interaktion mit Teams |
| App-Registrierung | Notwendiges Authentifizierungsverfahren auf Azure |
| Zugriffstoken | Wird über OAuth2 abgerufen und für Anfragen verwendet |
| C++-Implementierung | Ruft die Graph API mithilfe von WinHTTP auf |
🚀 Nächste Schritte
Als fortgeschrittenere Beispiele sind auch folgende möglich:
- In einen Teamkanal posten (
/teams/{team-id}/channels/...) - Beiträge mit Anhängen
- Zwischen Bot-Konten und Benutzerkonten wechseln
- Vollständige C++-Implementierung einschließlich Token-Abruf
Bitte zögern Sie nicht, einen Kommentar zu hinterlassen, wenn Sie Wünsche haben!
