Benutzerspezifische Ansichten
Wenn adaptive Karten früher in einer Teams-Unterhaltung gesendet wurden, sehen alle Benutzer genau die gleichen Karte Inhalte. Mit der Einführung des Universal Actions-Modells und refresh
für adaptive Karten können Botentwickler jetzt benutzerspezifische Ansichten adaptiver Karten für Benutzer bereitstellen. Dieselbe adaptive Karte kann jetzt zu einer benutzerspezifischen adaptiven Karte aktualisiert werden. Die adaptive Karte bietet leistungsstarke Szenarien wie Genehmigungen, Steuerelemente für Umfrageersteller, Ticketing, Incident management und Projektmanagementkarten.
Hinweis
- Die benutzerspezifische Ansicht wird für adaptive Karten unterstützt, die von einem Bot gesendet werden, und ist von universellen Aktionen abhängig.
- Maximal 60 verschiedene Benutzer können eine andere Version des Karte mit zusätzlichen Informationen oder Aktionen sehen.
Beispielsweise möchte Megan, sicherheitsrelevante Inspektorin bei Contoso, einen Incident erstellen und Alex zuweisen. Megan möchte auch, dass jeder im Team über den Vorfall informiert ist. Megan verwendet die Contoso-Erweiterung zur Meldung von Vorfällen, die von Universal Actions für adaptive Karten unterstützt wird.
Benutzerspezifische Ansichten für adaptive Karten
Der folgende Code enthält ein Beispiel für adaptive Karten:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
"version": "1.4",
"refresh": {
"action": {
"type": "Action.Execute",
"title": "Refresh",
"verb": "editOrResolveView",
"data": {
"refresh info": "<refresh info>"
}
},
"userIds": ["<Megan's user MRI>", "<Alex's user MRI>"]
},
"body": [
{
"type": "TextBlock",
"text": "Incident 1234"
},
{
"type": "TextBlock",
"text": "Incident details: <incident details>"
}
]
}
So senden Sie adaptive Karten, aktualisieren Sie benutzerspezifische Ansichten und rufen Anforderungen an den Bot auf:
- Wenn Megan einen neuen Incident erstellt, sendet der Bot die adaptive Karte oder allgemeine Karte mit Incidentdetails in der Teams-Unterhaltung.
- Diese Karte wird nun automatisch in der benutzerspezifischen Ansicht für Megan und Alex aktualisiert. Die Benutzer-MRIs von Alex und Megan werden in
userIds
der Eigenschaft derrefresh
-Eigenschaft des JSON-Codes für adaptive Karten hinzugefügt. Die Karte bleibt für andere Benutzer in der Unterhaltung gleich. - Bei Megan löst die automatische Aktualisierung eine
adaptiveCard/action
Aufrufanforderung an den Bot aus. Der Bot kann einen Incidentersteller Karte mitEdit
schaltfläche als Antwort auf diese Aufrufanforderung zurückgeben. - Ähnlich wie bei Alex löst die automatische Aktualisierung eine weitere
adaptiveCard/action
Aufrufanforderung an den Bot aus. Der Bot kann einen Incidentbesitzer KarteResolve
Schaltfläche als Antwort auf diese Aufrufanforderung zurückgeben.
Aufrufen einer Anforderung, die vom Teams-Client an den Bot gesendet wird
Der folgende Code enthält ein Beispiel für eine Aufrufanforderung, die vom Teams-Client von Alex und Megan an den Bot gesendet wird:
{
"type": "invoke",
"name": "adaptiveCard/action",
// ... other properties omitted for brevity
"value": {
"action": {
"type": "Action.Execute",
"id": "",
"verb": "editOrResolveView",
"data": {
"refresh info": "<refresh info>"
}
},
"trigger": "automatic"
}
}
adaptiveCard/action-Aufrufantwort Karte
Der folgende Code enthält ein Beispiel für eine adaptiveCard/action-Aufrufantwort Karte für Megan:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
"version": "1.4",
"refresh": {
"action": {
"type": "Action.Execute",
"title": "Refresh",
"verb": "editOrResolveView"
},
"userIds": ["<Megan's user MRI>", "<Alex's user MRI>"]
},
"body": [
{
"type": "TextBlock",
"text": "Incident 1234"
},
{
"type": "TextBlock",
"text": "Incident details: <incident details>"
}
],
"actions": [
{
"type": "Action.Execute",
"title": "Edit",
"verb": "edit",
"data": {
"additional info": "<additional info>",
...
}
}
]
}
adaptiveCard/action rufen Antwort-Karte für Alex auf
Der folgende Code enthält ein Beispiel für eine adaptiveCard/action-Aufrufantwort Karte für Alex:
{
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"type": "AdaptiveCard",
"originator":"c9b4352b-a76b-43b9-88ff-80edddaa243b",
"version": "1.4",
"refresh": {
"action": {
"type": "Action.Execute",
"title": "Refresh",
"verb": "editOrResolveView"
},
"userIds": ["<Megan's user MRI>", "<Alex's user MRI>"]
},
"body": [
{
"type": "TextBlock",
"text": "Incident 1234"
},
{
"type": "TextBlock",
"text": "Incident details: <incident details>"
}
],
"actions": [
{
"type": "Action.Execute",
"title": "Resolve",
"verb": "resolve",
"data": {
"additional info": "<additional info>",
...
}
}
]
}
Aufrufen der Antwort zum Zurückgeben adaptiver Karten
Der folgende Code enthält ein Beispiel für eine Aufrufantwort, um adaptive Karten zurückzugeben:
string cardJson = "<adaptive card json>";
var card = JsonConvert.DeserializeObject(cardJson);
var adaptiveCardResponse = JObject.FromObject(new
{
statusCode = 200,
type = "application/vnd.microsoft.adaptive.card",
value = card
});
Die folgende Liste enthält Karte Entwurfsrichtlinien für benutzerspezifische Ansichten:
Aktualisierungsverhalten: Sie können maximal 60 benutzerspezifische Ansichten für eine bestimmte Karte erstellen, die an eine Konversation gesendet werden, indem Sie deren
userIds
in derRefresh
-Eigenschaft angeben.Wenn das
userIds
Feld nicht in der -Eigenschaft angegeben ist, kann derRefresh
Teams-Client automatisch die Aktualisierung für alle Benutzer auslösen, wenn die Unterhaltung weniger als oder gleich 60 Mitglieder ist.Damit Benutzer Karte Aktualisierung manuell auslösen können, können sie im Menü mit den Nachrichtenoptionen aktualisieren auswählen. Dies geschieht für alle Benutzer, wenn weniger als 60 Mitglieder in einer Unterhaltung enthalten sind, oder für die Gruppe von Benutzern, die nicht in der
userIds
Liste angegeben sind, wenn alle oder weniger als 60 Benutzer in einer Unterhaltung vorhanden sind.
Basis Karte: Der Bot sendet die Nachricht, die in die Basisversion des Karte einbettet. Alle Mitglieder der Unterhaltung können dasselbe anzeigen. Der Bot ruft später die benutzerspezifische Karte durch Aktualisierung für die im
userIds
Abschnitt angegebenen Benutzer ab.Aktualisierungstimeout: Der Teams-Client löst eine Aktualisierung auf zwei Arten aus, entweder über Aktualisieren oder durch Auswählen von Ausführen. Die Aktualisierung wird nur ausgelöst, wenn die Karte des letzten Aufrufs älter als eine Minute ist. Sie können das Aktualisierungsverhalten steuern, indem Sie dem Datenbehälter einen Zeitstempel hinzufügen und vor dem Senden der aktualisierten Karte überprüfen.
Für benutzerspezifische Ansichten speichert der Teams-Client 50 neueste zwischengespeicherte Karten pro Benutzer. Wenn ein neuer Karte eine Zwischenspeicherung erfordert, entfernt der Speicher die älteste Karte basierend auf dem letzten Lesevorgang und ersetzt ihn durch die neueste Karte. Es gibt keinen Prozess zum Wiederherstellen der entfernten Karten nach einem bestimmten Zeitraum. Der Benutzer kann auch den Teams-Cache löschen, um Karten aus dem Store zu löschen.
Ein Nachrichtenupdate kann verwendet werden, um die basisbasierte Karte zu aktualisieren und gleichzeitig die benutzerspezifische Karte zu aktualisieren. Beim Öffnen des Chats oder Kanals wird auch die Karte für Benutzer mit aktivierter Aktualisierung aktualisiert.
Für Szenarien mit größeren Gruppen, in denen Benutzer zu einer Ansicht der Aktion wechseln, für die dynamische Updates für Die Antwortenden erforderlich sind, können Sie der
userIds
Liste weiterhin bis zu 60 Benutzer hinzufügen. Sie können den ersten Antwortgeber aus der Liste entfernen, wenn der 61. Benutzer antwortet. Für die Benutzer, die aus deruserIds
Liste entfernt werden, können Sie eine manuelle Aktualisierung bereitstellen, um das neueste Ergebnis zu erhalten.Fordern Sie die Benutzer auf, eine benutzerspezifische Ansicht zu erhalten, in der sie nur eine bestimmte Ansicht der Karte oder einige Aktionen sehen.
Hinweis
Die vom Bot zurückgegebene benutzerspezifische Karte wird nur an den jeweiligen Client gesendet, der sie angefordert hat. Wenn ein Benutzer beispielsweise zu einem anderen Client wechselt, z. B. von Desktop zu Mobilgerät, wird ein weiteres Aufrufereignis ausgelöst, um die aktualisierten Karte abzurufen.
Codebeispiel
Beispielname | Beschreibung | .NET | Node.js | Manifest |
---|---|---|---|---|
Adaptive Karten für sequenzielle Workflows | In diesem Beispiel wird die Implementierung von sequenziellen Workflows, benutzerspezifischen Ansichten und aktuellen adaptiven Karten in Bots veranschaulicht. | View | View | Anzeigen |
Siehe auch
Platform Docs
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Tickets als Feedbackmechanismus für Inhalte auslaufen lassen und es durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unter:Einreichen und Feedback anzeigen für