Verbreiten von Links
Wichtig
Die Codebeispiele in diesem Abschnitt basieren auf Version 4.6 und höheren Versionen des Bot Framework SDK. Wenn Sie nach Dokumentation zu früheren Versionen suchen, lesen Sie den Abschnitt Nachrichtenerweiterungen – v3 SDK im Ordner Ressourcen der Dokumentation.
In diesem Dokument erfahren Sie, wie Sie Ihrem App-Manifest mithilfe des Entwicklerportals und manuell die Linkentflechtung hinzufügen. Beim Entpacken von Links kann sich Ihre App registrieren, um eine Aufrufaktivität zu empfangen, wenn URLs mit einer bestimmten Domäne in den Nachrichtenbereich zum Verfassen eingefügt werden. Die invoke
-Aktivität enthält die vollständige URL, die in den Bereich zum Verfassen von Nachrichten eingefügt wurde, und Sie können mit einer Karte antworten, die der Benutzer öffnen kann, die zusätzliche Informationen oder Aktionen bereitstellt. Dies funktioniert ähnlich wie ein Suchbefehl, wobei die URL als Suchbegriff dient. Sie können jetzt Die Linkentflechtung zu Microsoft Teams hinzufügen, ohne die App zu installieren.
Hinweis
- Das Ergebnis der Verbreitung von Links wird 30 Minuten lang zwischengespeichert.
- Das Entpacken von Links unterstützt adaptive Karten, Version 1.3 und früher.
- Für das Entpacken von Links sind keine Nachrichtenerweiterungsbefehle erforderlich. Wenn Sie in
composeExtensions
im App-Manifest definierenmessagehandlers
, ist es nicht erforderlich, hinzuzufügencommands
. Weitere Informationen finden Sie unter Compose-Erweiterungen. - Für mobile Clients wird das Entflechten von Links nur für Links unterstützt, die keine Authentifizierung erfordern.
Die folgende Abbildung zeigt ein Beispiel für das Entpacken von Links in Teams-Desktop- und mobilen Clients:
Wenn ein Link in den Teams-Nachrichtenbereich zum Verfassen eingefügt wird, wird der Link in eine Karte mit den Arbeitselementdetails eingefügt.
Weitere Informationen zum Entpacken von Links finden Sie im folgenden Video:
Hinzufügen einer Verbreitung von Links zum App-Manifest
Um Ihrem App-Manifest das Verbreiten von Links hinzuzufügen, fügen Sie dem composeExtensions
-Abschnitt des JSON-Codes Ihres App-Manifests ein neues messageHandlers
-Array hinzu. Sie können das Array mithilfe des Entwicklerportals oder manuell hinzufügen. Domänenauflistungen können Wildcards enthalten, die z. B *.example.com
. genau einem Segment der Domäne entsprechen. Wenn Sie mit übereinstimmen a.b.example.com
müssen, verwenden Sie *.*.example.com
.
Hinweis
Stellen Sie sicher, dass Sie keine Domänen hinzufügen, die sich nicht in Ihrem Steuerelement befinden, weder direkt noch über Wildcards. Beispielsweise yourapp.onmicrosoft.com
ist gültig, aber *.onmicrosoft.com
nicht gültig. Die Domänen der obersten Ebene sind verboten, *.com
z. B. , *.org
.
Hinzufügen der Linkentfurlingung über das Entwicklerportal
Öffnen Sie das Entwicklerportal über den Microsoft Teams-Client, und wählen Sie dann die Registerkarte Apps aus.
Hinweis
Sie müssen die Entwicklerportal-App hinzufügen, wenn Sie sie nicht in Ihrem Teams-Client hinzugefügt haben.
Laden Sie Ihr App-Manifest.
Wählen Sie unter App-Features die Option Messaging-Erweiterung und dann entweder Vorhandenen Bot auswählen oder Neuen Bot erstellen aus.
Klicken Sie auf Speichern.
Wählen Sie im Abschnitt Vorschaulinks die Option Domäne hinzufügen aus, und geben Sie dann eine gültige Domäne ein.
Klicken Sie auf Hinzufügen. In der folgenden Abbildung wird der Prozess erläutert:
Verbreitung von Links manuell hinzufügen
Hinweis
Wenn die Authentifizierung über Microsoft Entra ID hinzugefügt wird, lösen Sie Links in Teams mithilfe des Bots auf.
Zuerst müssen Sie das messageHandlers
Array ihrem App-Manifest hinzufügen und die Nachrichtenerweiterung für die Interaktion mit Links aktivieren. Im folgenden Beispiel wird erläutert, wie Sie das Verbreiten von Links manuell hinzufügen:
...
{
"composeExtensions": [
{
"botId": "abc123456-ab12-ab12-ab12-abcdef123456",
"messageHandlers": [
{
"type": "link",
"value": {
"domains": [
"*.trackeddomain.com"
]
}
}
]
}
]
}
...
Ein vollständiges Manifestbeispiel finden Sie unter Manifestreferenz.
Behandeln des composeExtensions/queryLink
-Aufrufs
Nachdem Sie die Domäne zum App-Manifest hinzugefügt haben, müssen Sie Ihren Webdienstcode aktualisieren, um die invoke
Anforderung zu verarbeiten. Verwenden Sie die empfangene URL, um Ihren Dienst durchzusuchen und eine Kartenantwort zu erstellen. Wenn Sie mit mehr als einer Karte antworten, wird nur die erste Kartenantwort verwendet.
Hinweis
Die Antwort eines Bots muss eine preview
-Eigenschaft enthalten.
Die folgenden Kartentypen werden unterstützt:
Weitere Informationen finden Sie unter Aktionstypaufruf.
Der folgende Code ist ein Beispiel für die invoke
Anforderung:
Es folgt ein Beispiel für invoke
, die an Ihren Bot gesendet werden:
{
"type": "invoke",
"name": "composeExtension/queryLink",
"value": {
"url": "https://theurlsubmittedbyyouruser.trackeddomain.com/id/1234"
}
}
Beispiel für die Antwort:
{
"composeExtension":
{
"type": "result",
"attachmentLayout": "list",
"attachments":
[
{
"contentType": "application/vnd.microsoft.card.adaptive",
"preview":
{
"contentType": "application/vnd.microsoft.card.adaptive",
"content": << Card Payload >>
},
"contentType": "application/vnd.microsoft.card.adaptive",
"content": << Card Payload >>
}
]
}
}
Microfunktionen für Websitelinks
Die gängigste Möglichkeit zum Freigeben von Inhalten in Microsoft Teams ist links. Für jeden Link entpackt Teams eine Vorschau des Links in eine adaptive Karte mit den Informationen wie Bild, Titel und Beschreibung.
Sie können umfangreiche Unfurl-Vorschauen Ihrer Links anzeigen, ohne Ihre App in Microsoft Teams zu installieren. Fügen Sie ihrer Website die schema.org Metadaten im JSON-LD-Format hinzu, und verwenden Sie die Microfunktionsvorlagen , die Ihrem Produkt entsprechen. Teams verwendet diese Vorlagen, um umfangreiche Vorschauen für Ihre Links in Microsoft Teams zu entpacken.
Aktivieren der Rich-Unfurl-Vorschau von Links
Wenn Sie Ihrer Website bereits schema.org hinzugefügt haben, können Sie die umfangreiche Vorschau ihres Links anzeigen, indem Sie ihn in den Bereich Zum Verfassen von Teams-Nachrichten einfügen.
Wenn Sie Ihrer Website keine schema.org hinzugefügt haben, können Sie die umfangreiche Vorschauversion manuell überprüfen, indem Sie die folgenden Schritte ausführen:
Fügen Sie der Website die schema.org Metadaten im JSON-LD-Format hinzu.
Suchen Sie auf Ihrer Website nach dem unterstützten
@type
Attribut, und kopieren Sie die Metadaten unter dem Skripttagapplication/ld+json
.Öffnen Sie den Designer für adaptive Karten , und erstellen Sie eine neue Datei.
Fügen Sie im SAMPLE DATA EDITOR die JSON-Metadaten von Ihrer Website ein.
Überprüfen Sie die Microfunktionsvorlage, und fügen Sie den Vorlagencode im CARD PAYLOAD EDITOR hinzu.
Fügen Sie ihren Websitemetadaten im SAMPLE DATA EDITOR bei Bedarf neue Attribute aus der Vorlage hinzu.
Wählen Sie Vorschaumodus aus, um eine Vorschau der Oberfläche für das Entpacken adaptiver Karten anzuzeigen.
Weitere Informationen finden Sie unter Mikrofunktionen für Websitelinks.
Zero install for link unfurling (Nullinstallation für link unfurling)
Das Entpacken von Zero Install-Links hilft Ihnen, Vorschauen für Ihre freigegebenen Links zu entpacken, noch bevor ein Benutzer Ihre App in Teams entdeckt oder installiert. Sie können Karten mit einer neuen invoke
Anforderung anonym entpacken oder eine vorab authentifizierte Vorschau für adaptive Karten für Benutzer erstellen, bevor sie Ihre App installieren oder authentifizieren.
Die folgende Abbildung enthält einen sequenziellen Flow zum Aktivieren und Verwenden der Entflechtung von Nullinstallationslinks:
Aktivieren der Entbündelung von Nullinstallationslinks
Führen Sie die folgenden Schritte aus, um Ihre App auf das Entpacken des Installationslinks vorzubereiten:
Legen Sie die Eigenschaft
supportsAnonymizedPayloads
im Manifestschema auf true fest.Legen Sie Ihre App so fest, dass die neue
invoke
AnforderungcomposeExtensions/anonymousQueryLink
verarbeitet wird.Beispiel für die neue
invoke
Anforderung:Beispiel für die Anforderungsnutzlast
invoke
:{ "name":"composeExtension/anonymousQueryLink", "type":"invoke", "timestamp":"2021-12-02T08:12:21.148Z", "localTimestamp":"2021-12-02T00:12:21.148-08:00", "id":"f:43d59e15-6114-bd53-08c3-b232aa648ec1", "channelId":"msteams", "serviceUrl":"https://smba.trafficmanager.net/amer/", "from":{ "id":"redacted", "name":"redacted" }, "conversation":{ "isGroup":true, "conversationType":"groupChat", "tenantId":"redacted", "id":" redacted", "name":" redacted" }, "recipient":{ "id":"28:85fa138c-7654-4236-86eb-466160687029", "name":"test bot" }, "entities":[ { "locale":"en-US", "country":"US", "platform":"Mac", "timezone":"America/Los_Angeles", "type":"clientInfo" } ], "channelData":{ "tenant":{ "id":" redacted" }, "source":{ "name":"compose" } }, "value":{ "url":"https://test.test.com/test" }, "locale":"en-US", "localTimezone":"America/Los_Angeles" }
Reagieren Sie auf die
composeExtensions/anonymousQueryLink
Nutzlast.Für Szenarien ohne Authentifizierung: Sie müssen eine Antwort mit dem
type
alsresult
und einem Karte zurücksenden. Verwenden Sie die folgende Vorlage:{ "composeExtension": { "type": "result", "attachmentLayout": "list", "attachments": [ { "contentType": "application/vnd.microsoft.teams.card.o365connector", "content": { "sections": [ { "activityTitle": "[85069]: Create a cool app", "activityImage": "https://placekitten.com/200/200" }, { "title": "Details", "facts": [ { "name": "Assigned to:", "value": "[Larry Brown](mailto:larryb@example.com)" }, { "name": "State:", "value": "Active" } ] } ] } } ] } }
Für Authentifizierungsszenarien: Sie müssen eine Antwort mit dem
type
alsauth
mit einer optionalen Vorauthentifizierungs-Karte in den Anlagen zurücksenden. Verwenden Sie die folgende Vorlage:{ "composeExtension": { "type": "auth", "attachmentLayout": "list", "attachments": [ { "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", "type": "AdaptiveCard", "version": "1.5", "actions": [], "body": [ { "type": "TextBlock", "size": "medium", "weight": "bolder", "text": "Zero-install test app" }, { "type": "TextBlock", "text": "Link your account with this app for a full experience", "wrap": true } ] } ] } }
Preauth Karte (nur für die Authentifizierung): Erstellen Sie eine Karte Vorschau, um Ihre Links für Benutzer zu entpacken, die Ihre App nicht installiert haben. Sie können entweder eine vorkonfigurierte Karte erstellen oder relevante Platzhalterfelder für die Benutzer hinzufügen, die aktualisiert werden sollen. Benutzer können sich bereits vor der Installation über die App informieren.
Sie können eine benutzerdefinierte Karte erstellen und relevante Felder hinzufügen. Die Benutzer können die erforderlichen Informationen gemäß den Feldern eingeben. Die folgende Abbildung veranschaulicht eine angepasste Karte Vorschau:
Die folgende Abbildung veranschaulicht eine Standardvorschau Karte:
Hinweis
Nachdem der Link in den Bereich zum Verfassen von Nachrichten eingefügt wurde, löst Teams den Link in einem Karte aus und fordert den Benutzer auf, sich bei der App anzumelden. Wenn sich der Benutzer nicht bei der App anmeldet, wird der Link nicht als Karte im Chat gepostet.
Vorteile und Einschränkungen:
Das Entpacken von Nullinstallationslinks hilft Ihnen, den Benutzern eine verbesserte Benutzererfahrung zu bieten, z. B.:
- Entpacken Sie Vorschauen für Ihre Links, die Benutzer in Teams freigeben, noch bevor sie Ihre App installiert haben.
- Erstellen Sie eine Willkommens-Karte für Ihre App, um eine Vorschau mit den Platzhalterfeldern anzuzeigen.
So testen Sie das Entfurling von Nullinstallationslinks
Wenn Sie die Entflechtung des Nullinstallationslinks testen, installieren Sie die App nicht als persönliche App. Laden Sie stattdessen die App in Teams hoch.
Hinweis
Führen Sie die Test-App nicht direkt über den Microsoft Visual Studio-Debugger aus.
Führen Sie die folgenden Schritte aus, um die Entfurlingung von Nullinstallationslinks zu testen:
Melden Sie sich im Teams Admin Center an.
Wählen Sie im linken Bereich Teams-Apps>Apps verwalten aus.
Wählen Sie + Neue App hochladen aus.
Wählen Sie Hochladen aus.
Wählen Sie Öffnen aus, um die ZIP-Datei für Ihre Testanwendung hochzuladen.
Nachdem der App-Upload erfolgreich war, wechseln Sie zuTeams-Apps>>, die für Ihre Organisation erstellt wurden.
Sie können die
composeExtensions/anonymousQueryLink
Aufrufanforderung testen, indem Sie einen Haltepunkt in der Methode einrichten, die die anonymousQueryLink-Anforderung in Ihrer Anwendung implementiert.
Entfernen des Caches für die Linkentfernung
Wenn ein Benutzer einen Link in einer Besprechung freigibt, löst die Teams-App den Link zu einer adaptiven Karte aus. Das Ergebnis der Linkentflechtung wird 30 Minuten lang in Teams zwischengespeichert. Sie können Ihre App aktualisieren, um eine Cacherichtlinie festzulegen und den Cache für die App zu entfernen. Diese Aktion hilft Ihnen, unterschiedliche Inhalte auf einer adaptiven Karte anzuzeigen, wenn der App-Link in einem anderen Kontext in Teams freigegeben wird.
Um den Cache für die Linkentfernung zu entfernen, aktualisieren Sie Ihren Bot mit wie type
setcachepolicy
unter der suggestedActions
-Eigenschaft. Teams speichert die Ergebnisse für die App-Links nicht mit zwischen "type": "setCachePolicy"
.
Das folgende JSON-Nutzlastbeispiel für suggestedActions
die Eigenschaft:
"suggestedActions": {
"actions": [
{
"type": "setCachePolicy",
"value": "{\"type\":\"no-cache\"}"
}
]
},
Schrittweise Anleitung
Befolgen Sie die Schritt-für-Schritt-Anleitung, um Links in Teams mithilfe des Bots zu verbreiten.
Codebeispiel
Beispielname | Beschreibung | .NET | Node.js | Manifest |
---|---|---|---|---|
Keine Installationslink-Entflechtung. | In diesem Beispiel wird gezeigt, wie Die suchbasierte Messagingerweiterung mit einer Konfigurationsseite verwendet wird. Dieses Beispiel bietet auch die Entflechtung von Nullinstallationslinks. | View | View | Anzeigen |