Teams Connectors werden bekanntlich ab Ende 2024 deaktiviert.
Incoming Webhook Connectors in Teams informieren es sei eine Aktualisierung erforderlich.
Mir ist es unklar, ob das Update die notwendige Aktualisierung ist, damit ein Connector noch bis Ende 2025 funktioniert. Microsoft hat dazu noch keine Informationen veröffentlicht.
*************
Update vom 24. Oktober 2024:
Mittlerweile hat Microsoft bestätigt, bei der Aktualisierung der URL handelt es sich um die Verlängerung bis 31. Dezember 2025. Der Zeitraum um die URL anzupassen wurde ausserdem bis zum 31. Januar 2025 verlängert (zuvor 31. Dezember 2024).
*************
Teams wird die Webhook URL aktualisieren. Es ergänzt die URL mit einem zusätzlichen Parameter am Ende.
Anstelle des Incoming Webhook Connectors sollte ein neuer Power Automate Workflow im Teams Kanal verwendet werden.
Microsoft hat eine Hilfe publiziert, Martin Heusser zudem eine Anleitung für die Migration von Incoming Webhook Connector zu Power Automate Workflow.
Im Unterschied zum HTTP Trigger ist für Incoming Webhook in Power Automate keine Premium Lizenz erforderlich.
Der Webhook aus Power Automate gibt eine neue Webhook URL zurück.
Vorteil an dem neuen Webhook, es lässt sich definieren wer Nachrichten an die URL senden darf. Die Webhooks aus dem Teams Connector waren generell für “Jeder, der die URL kennt” offen. Es ist in einem Power Automate Webhook weiterhin die Standardkonfiguration. Für eine Änderung öffne deinen Flow in Power Automate.
Bei meinen Tests mit PowerShell musste ich, gegenüber dem alten Webhook, im Body der Adaptive Card nichts verändern.
Während meiner Tests erkannte ich jedoch, die Webhook URL aus Power Automate unterstützt Adaptive Cards bis zu einem Schema 1.4. Mit Schema 1.5 kann Teams die Karte nicht abbilden.
Im Vergleich, die Webhook URL aus dem Teams Connector kann Schema 1.5 abbilden.
In meinem Beispiel wurde die zweite Nachricht über Power Automate Webhook mit Schema 1.5 gesendet. Mit Schema 1.5 funktioniert es nicht, mit Schema 1.4 funktioniert es.
Hier mein Beispiel für die Karte.
$AdaptiveCard = @"
{
"type": "message",
"attachments": [
{
"contentType": "application/vnd.microsoft.card.adaptive",
"contentUrl": null,
"content": {
"`$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"version": "1.4",
"msteams": {
"width": "Full"
},
"body": [
{
"type": "TextBlock",
"size": "Large",
"weight": "Bolder",
"text": "Hello World",
"style": "heading",
"wrap": true
},
{
"type": "TextBlock",
"text": "Power Automate Webhook, with schema version 1.4",
"wrap": true,
"separator": true
}
]
}
}
]
}
"@
$WebhookURL = "<WebhookURL>"
Invoke-RestMethod -Method POST -Uri $WebhookURL -Body $AdaptiveCard -ContentType "application/json;charset=utf-8"