Microsoft Teams
Wenn Sie einen Microsoft Teams-Kanal einrichten, können Benutzer mit Ihrem digitalen Assistenten (oder einem Standalone-Skill) über die Microsoft Teams-Benutzeroberfläche chatten.
Gehen Sie wie folgt vor, um einen Kanal einzurichten:
- Erstellen Sie im Microsoft Teams-Entwicklerportal eine App, und fügen Sie dieser App einen Bot hinzu.
- Erstellen Sie mit der App-ID und dem Kennwort aus dem Bot einen Kanal in Digital Assistant.
- Kopieren Sie die Webhook-URL, die bei der Kanalerstellung generiert wird, und fügen Sie sie zum Bot hinzu.
- Testen Sie Ihren digitalen Assistenten in Microsoft Teams.
Skills und digitale Assistenten, die Sie über Microsoft Teams-Kanäle verfügbar machen, können auch in Gruppenchats aufgenommen werden. Siehe Gruppenchats.
Schritt 1: Bot erstellen
Um den digitalen Assistenten (oder Standalone-Skill) in Microsoft Teams verfügbar zu machen, müssen Sie über das Teams Developer Portal Folgendes erstellen:
- Eine Microsoft Teams-App. Diese App ist der Container für den Bot, den Sie erstellen. Damit greifen Sie auf den Bot in Teams zu.
- Einen Bot. Dies ist das Artefakt in der App, das mit Oracle Digital Assistant kommuniziert.
Das Teams-Entwicklerportal ist für einige Arten von Microsoft-Mandanten, wie GCC-High-Mandanten und DoD-Mandanten des Verteidigungsministeriums, nicht verfügbar. Wenn Sie mit einem solchen Mandanten arbeiten, können Sie die App mit einem regulären Mandanten erstellen, die App herunterladen und dann die App mit Microsoft Graph in Ihre nationale Cloud hochladen. Weitere Informationen finden Sie unter Entwicklerportal für Teams und Nationale Cloud-Deployments auf der Microsoft-Site.
Gehen Sie dazu wie folgt vor:
- Gehen Sie zu https://dev.teams.microsoft.com/home, und melden Sie sich mit Ihrem Microsoft-Account an.
- Klicken Sie in der linken Navigationsleiste auf Apps.
- Klicken Sie auf + Neue App.
- Geben Sie im Dialogfeld App hinzufügen den Namen ein, den Sie für die App verwenden möchten, wie er in Microsoft Teams angezeigt wird, und klicken Sie auf Hinzufügen.
(Diese Anwendung kapselt den Bot ein, den Sie später erstellen.)
- Geben Sie auf der Seite Basisinformationen die restlichen Pflichtfelder mit Ausnahme der Anwendungs-(Client-)ID ein, und klicken Sie auf Speichern.
Hinweis
Dieses Feld ist nur erforderlich, wenn Sie den Bot für Single Sign-On konfigurieren. Siehe SSO-Konfiguration für Microsoft Teams-Kanäle. - Wählen Sie in der linken Navigationsleiste der Seite im Abschnitt Konfigurieren die Option App-Features aus.
- Klicken Sie auf Bot.
- Klicken Sie auf den Link Neuen Bot erstellen.
- Klicken Sie auf der Seite "Botverwaltung" auf + Neuer Bot.
- Geben Sie im Dialogfeld Bot hinzufügen einen Namen für den Bot ein.
- Aktivieren Sie im Abschnitt "Kanäle" der Seite das Kontrollkästchen Microsoft Teams, und klicken Sie auf Speichern.
- Wählen Sie im Abschnitt "Client Secrets" die Option Client Secret für Ihren Bot hinzufügen aus.
- Kopieren Sie den Wert des generierten Client Secrets, und speichern Sie ihn an einem sicheren Ort im System.
- Klicken Sie im Abschnitt "Client Secrets" der Seite mit der rechten Maustaste auf den Link Azure, um die Seite "App-Registrierungen" von Azure Active Directory in einer separaten Browserregisterkarte zu öffnen.
- Wählen Sie auf der Seite "App-Registrierungen" die erstellte Botressource aus.
- Wählen Sie in der linken Schiene die Option Authentication aus.
- Wählen Sie auf der Seite im Abschnitt Unterstützte Accounttypen die Multi-Tenant-Option (Accounts in any organization directory (Any Microsoft Entra ID tenant - Multitenant) aus.
- Wenn Sie externe Ereignisse verwenden möchten, um Nachrichten über einen Microsoft Teams-Kanal an Benutzer zu senden, fügen Sie Berechtigungen zum Abrufen des Benutzerprofils über die Microsoft Graph-API hinzu. (Die Funktion für externe Ereignisse verwendet gecachte Benutzerdaten aus früheren Unterhaltungen, um Benachrichtigungen zu generieren oder proaktiv Unterhaltungen mit dem Benutzer zu initiieren.) So fügen Sie diese Berechtigungen hinzu:
- Wählen Sie in der linken Navigation der Seite "App-Registrierungen" für den Bot die Option API Permissions aus.
- Klicken Sie auf Berechtigung hinzufügen.
- Wählen Sie im Dialogfeld API-Berechtigungen anfordern die Option Microsoft Graph aus.
- Wählen Sie Anwendungsberechtigungen aus.
- Wählen Sie die Berechtigung Directory.Read.All aus, und klicken Sie auf Berechtigungen hinzufügen.
- Nachdem die Berechtigung in der Liste Konfigurierte Berechtigungen angezeigt wird, wählen Sie sie aus, klicken Sie auf Admin-Zustimmung erteilen für..., und klicken Sie dann im Dialogfeld Admin-Zustimmungsbestätigung erteilen auf Ja.
-
Kehren Sie zur Registerkarte zurück, auf der das Entwicklerportal in Ihrem Browser geöffnet ist.
-
Klicken Sie in der linken Navigationsleiste auf Apps, und wählen Sie Ihre App aus.
-
Wählen Sie in der linken Navigation für die App die Option App features aus.
-
Klicken Sie auf die Kachel Bot.
-
Wählen Sie in der Dropdown-Liste unter Vorhandenen Bot auswählen den soeben erstellten Bot aus.
-
Wählen Sie erneut in der linken Navigation für die App die Option App-Features aus.
-
Kopieren Sie im Titel Bot die Bot-ID, und speichern Sie sie in einer Textdatei.
Hinweis
Möglicherweise müssen Sie die Bot-ID manuell transkribieren.Sie benötigen diese ID, wenn Sie den Kanal in Digital Assistant erstellen.
- Wählen Sie im Abschnitt "Geltungsbereiche" der Seite die Option Persönlich aus.
(Sie können auch andere Geltungsbereiche auswählen. Persönlich ist jedoch erforderlich, damit der Bot antwortet.)
-
Klicken Sie auf Speichern.
-
Wählen Sie optional in der linken Navigation der Seite im Abschnitt Konfigurieren die Option Domains aus, und fügen Sie alle Domains hinzu, aus denen die Botbenutzer stammen können.
-
Lassen Sie das Entwicklerportal in Ihrem Browser geöffnet.
Sie schließen die Registrierung später mit einer Webhook-URL ab, die Sie beim Erstellen des Kanals in Digital Assistant erhalten.
Schritt 2: Kanal in Digital Assistant erstellen
-
Öffnen Sie in einem separaten Fenster oder auf einer separaten Registerkarte Ihres Browsers Digital Assistant, klicken Sie im linken Menü auf Kanäle, und wählen Sie Benutzer aus.
-
Klicken Sie auf + Kanal, um das Dialogfeld "Kanal erstellen" zu öffnen.
-
Geben Sie einen Namen für Ihren Kanal ein.
-
Wählen Sie Microsoft Teams als Kanaltyp aus.
-
Geben Sie die Microsoft-Bot-ID mit der ID des von Ihnen erstellten Microsoft-Bots ein.
-
Geben Sie unter Microsoft Bot-Kennwort (Client Secret-Wert) das Kennwort oder den Client Secret-Wert (nicht zu verwechseln mit der Client Secret-ID) ein, die für den Bot generiert wurde.
-
Klicken Sie auf Erstellen.
-
Kopieren Sie die WebHook-URL auf der Seite "Kanäle", und fügen Sie sie an einer geeigneten Stelle in Ihrem System ein.
-
Klicken Sie auf
, und wählen Sie den digitalen Assistenten oder Skill aus, den Sie mit dem Kanal verknüpfen möchten.
-
Aktivieren Sie das Steuerelement Kanal aktiviert.
Schritt 3: Webhook-URL für Microsoft Teams konfigurieren
Jetzt müssen Sie zurück zu Microsoft Teams gehen und die Konfiguration dort abschließen.
-
Kehren Sie zur Browserregisterkarte zurück, auf der das Teams-Entwicklerportal geöffnet ist.
-
Wählen Sie in der äußersten linken Navigationsleiste der Seite das Symbol Extras aus, und klicken Sie auf Botverwaltung.
-
Wählen Sie den erstellten Bot aus.
- Wählen Sie auf der Seite des Bots die Registerkarte Konfigurieren aus.
-
Fügen Sie im Feld Bot endpoint address die Webhook-URL ein, die Sie bei der Kanalerstellung in Digital Assistant erhalten haben, und klicken Sie auf Save.
Schritt 4: Apps in Ihrem Office 365-Mandanten aktivieren
Als Nächstes muss der Office 365-Administrator Ihren Mandanten für folgende Aufgaben konfigurieren:
- Externe Apps in Microsoft Teams zulassen
- Sideloading von externen Apps zulassen
- Neue externe Apps standardmäßig aktivieren
Die konkreten Schritte finden Sie unter https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/build-and-test/prepare-your-o365-tenant.
Schritt 5: In Microsoft Teams testen
Wenn Sie den Microsoft Teams-Kanal und das Messaging konfiguriert haben, können Sie Ihren digitalen Assistenten (oder Skill) in Microsoft Teams testen. Führen Sie hierzu die folgenden Schritte aus:
- Klicken Sie auf der Seite für die App, die Sie mit dem Microsoft Developer Portal erstellt haben, auf die Schaltfläche Vorschau in Teams.
SSO-Konfiguration für Microsoft Teams-Kanäle
Wenn ein digitaler Assistent oder Skill dieselbe Authentifizierung erfordern soll, die Sie für Microsoft Teams konfiguriert haben, können Sie die Single Sign-On-(SSO-)Authentifizierung für diesen digitalen Assistenten oder Skill in Microsoft Teams einrichten.
Sobald diese SSO-Authentifizierung eingerichtet ist, können Benutzer sich mit ihren Azure Active Directory-(Azure AD-)Zugangsdaten bei Teams anmelden und dann nahtlos mit dem digitalen Assistenten interagieren, ohne sich erneut anmelden zu müssen.
Alle Backend-Anwendungen, auf die über den digitalen Assistenten zugegriffen wird, müssen Azure AD-Zugriffstoken direkt unterstützen. Für Fusion-basierte Cloud Applications-(FA-)Kunden, die Teams verwenden, ist SSO möglicherweise auch zwischen Azure AD und FA aktiviert. Es ist jedoch noch nicht möglich, eine nahtlose Unterhaltung mit FA aus einer Teamsession zu führen, da das von Teams generierte Sicherheitszugriffstoken derzeit nicht direkt für die Kommunikation mit FA verwendet werden kann. Um diese Diskrepanz zu beheben, können Sie eine benutzerdefinierte Lösung für einen Tokenaustausch implementieren. Weitere Informationen finden Sie in diesem Blogpost.
Im Folgenden sind die allgemeinen Schritte zum Konfigurieren von SSO für einen Microsoft Teams-Kanal aufgeführt:
- (Falls noch nicht geschehen) Erstellen Sie einen Microsoft Teams-Kanal, wie in den vorherigen Themen beschrieben.
- Erstellen Sie eine Azure AD-Anwendung im Azure-Portal.
- Aktualisieren Sie die Microsoft-Botregistrierung mit SSO-Details.
- Registrieren Sie in Oracle Digital Assistant die Azure AD-App als Microsoft Identity Platform-Authentifizierungsservice.
- Aktivieren Sie die Authentifizierung in den Skills über den registrierten Authentifizierungsservice.
Azure AD-Anwendung erstellen
Um SSO für einen Skill oder digitalen Assistenten in Microsoft Teams einzurichten, müssen Sie eine Azure AD-Anwendung erstellen. Diese Anwendung ist zusätzlich zur Azure AD-Anwendung, die Sie bereits beim Einrichten des Microsoft Teams-Kanals erstellt haben.
Voraussetzungen:
- Ein Azure-Account mit einem aktiven Abonnement
- Die Microsoft-App-ID für den Bot, den Sie mit Ihrem Microsoft Teams-Kanal eingerichtet haben
- Admin-Zugriff auf das Azure-Portal
So erstellen Sie eine Azure AD-Anwendung für SSO:
- Erstellen Sie eine neue Anwendungsregistrierung:
- Navigieren Sie im Azure-Portal zu https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade.
- Klicken Sie auf New Registration.
- Füllen Sie das Feld Name aus.
- Wählen Sie im Abschnitt Supported account types das Optionsfeld Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox) aus.
- Klicken Sie auf Register.
Nachdem die Anwendung erstellt wurde, gelangen Sie in den Abschnitt Overview. Die Anwendungs-ID (Client-ID) und Verzeichnis-ID (Mandanten-ID) sollten für Ihre App erstellt werden.
- Fügen Sie eine Webplattformkonfiguration hinzu:
- Wählen Sie in der linken Navigationsleiste die Option Authentication aus.
- Klicken Sie unter Platformkonfigurationen auf Plattform hinzufügen, und wählen Sie Web aus.
- Fügen Sie eine Umleitungs-URI mit folgendem Format hinzu:
<YOUR_Oracle-Digital-Assistant_URL>/connectors/v2/callback
- Klicken Sie auf Configure.
- Erstellen Sie ein Client Secret:
- Klicken Sie in der linken Navigationsleiste auf Certificates and secrets.
- Klicken Sie auf + New client secret, füllen Sie die Pflichtfelder aus, und klicken Sie auf Add.
- Kopieren Sie den Client-Secret-Wert, und speichern Sie ihn an einem sicheren Ort. Sie benötigen diesen Wert später.
- Konfigurieren Sie das Token:
- Wählen Sie in der linken Navigationsleiste die Option Token configuration aus.
- Klicken Sie auf + Add optional claim.
- Wählen Sie als Token type Access aus.
- Wählen Sie die folgenden Claims aus:
- given_name
- upn
- Klicken Sie auf Add.
- Wählen Sie die Option Turn on the Microsoft Graph email, profile permission (required for claims to appear in token) aus, und klicken Sie auf Add.
- Wählen Sie in der linken Navigationsleiste die Option API permissions aus.
Dort werden drei Berechtigungen erstellt.
- Klicken Sie auf + Berechtigung hinzufügen, und fügen Sie User.ReadBasic.All hinzu.
Sie benötigen diese Option, um auf Profilinformationen zuzugreifen.
- Legen Sie die Anwendungs-ID-URI fest:
- Wählen Sie in der linken Navigationsleiste die Option Expose an API aus.
- Klicken Sie auf das Feld Application ID URI.
- Aktualisieren Sie den Wert im folgenden Format:
api://botid-<Microsoft_App_ID_for_your_bot>
Hinweis
Dies muss die Anwendungs-ID für den Bot sein, nicht die für die SSO-APP. - Klicken Sie auf + Add a scope.
- Führen Sie im Bereich, der daraufhin geöffnet wird, folgende Schritte aus:
- Legen Sie
access_as_user
als Namen für Scope fest.Der Domainteil des Geltungsbereichnamens, der direkt unter dem Textfeld angezeigt wird, sollte automatisch mit der im vorherigen Schritt festgelegten Anwendungs-ID-URI übereinstimmen, wobei
/access_as_user
am Ende hinzugefügt wird. - Setzen Sie Who can consent? auf Admins and users.
- Legen Sie
- Füllen Sie die Felder für die Konfiguration von Admin- und Benutzerzustimmungs-Prompts mit Werten aus, die für den Geltungsbereich
access_as_user
geeignet sind.Vorschläge:
- Admin consent title: Teams kann auf das Benutzerprofil zugreifen.
- Admin consent description: Teams kann die Web-APIs der App als aktueller Benutzer aufrufen.
- User consent title: Teams kann auf Ihr Benutzerprofil zugreifen und in Ihrem Namen Anforderungen senden.
- User consent description: Teams kann die APIs dieser App mit Ihren Rechten aufrufen.
- Stellen Sie sicher, dass State auf Enabled gesetzt ist.
- Klicken Sie im Abschnitt Authorized client applications auf + Add a client application.
- Geben Sie die folgenden IDs ein:
1fec8e78-bce4-4aaf-ab1b-5451cc387264
Das ist die Teams-App und -Desktopanwendung.
5e3ce6c0-2b1f-4285-8d4b-75ee78787346
Das ist die Teams-Webanwendung.
- Aktualisieren Sie das Manifest:
- Wählen Sie in der linken Navigationsleiste die Option Manifest aus.
- Setzen Sie
"acceptMappedClaims"
auftrue
. - Setzen Sie
"accessTokenAcceptedVersion"
auf2
. - Klicken Sie auf Speichern.
- Erteilen Sie der Azure AD-Anwendung Mandanten-Admin-Berechtigungen.
- Wählen Sie in der linken Navigationsleiste die Option Overview aus.
- Kopieren Sie die Anwendungs-ID (Client-ID) unter Application (client) ID, die Verzeichnis-ID (Mandanten-ID) unter Directory (tenant) ID und die Anwendungs-ID-URI unter Application ID URI, und speichern Sie sie an einem geeigneten Ort.
- Melden Sie sich in einem privaten Browserfenster beim Microsoft-Admin-Account an.
Die URL hat das folgende Format:
Dabei ersetzen Siehttps://login.microsoftonline.com/<tenant-id>/adminconsent?client_id=<client-id>
<tenant-id>
durch die gerade kopierte Verzeichnis-ID (Mandanten-ID) und<client-id>
durch die gerade kopierte Anwendungs-ID (Client-ID).
- Prüfen und akzeptieren Sie im Dialogfeld Permissions requested die Berechtigungen.
Botregistrierung mit den SSO-Details aktualisieren
Aktualisieren Sie den Microsoft-Bot mit den konfigurierten SSO-Details:
- Öffnen Sie den Bot im Teams-Entwicklerportal, und öffnen Sie den Manifesteditor.
- Wählen Sie die Registerkarte Basisinformationen.
- Scrollen Sie nach unten zum Feld Application (client) ID, und fügen Sie die Anwendungs-(Client-)ID ein.
- Wählen Sie die Registerkarte Single-Sign-On aus.
- Fügen Sie in der Anwendungs-ID-URI die zuvor kopierte Anwendungs-ID-URI hinzu.
- Wählen Sie in der linken Navigation In Organisation veröffentlichen aus.
Azure AD-App als Authentifizierungsservice im digitalen Assistenten registrieren
Jetzt registrieren Sie die Azure AD-App als Authentifizierungsservice in Oracle Digital Assistant.
-
Öffnen Sie in einem separaten Browserfenster oder in einer separaten Registerkarte Digital Assistant, blenden Sie Einstellungen im linken Menü ein, und wählen Sie Authentifizierungsservices aus.
- Klicken Sie auf + Service.
- Geben Sie im Dialogfeld Neuer Authentifizierungsservice die folgenden Werte ein:
- Identitätsprovider: Microsoft Identify Platform
- Name: Ein Name, mit dem der Authentifizierungsservice identifiziert wird.
- Tokenendpunkt-URL: Die URL des Identitätsproviders für die Anforderung von Zugriffstokens. Verwenden Sie:
https://login.microsoftonline.com/<Azure-Active-Directory-TenantID>/oauth2/v2.0/token
- Autorisierungsendpunkt: Die IDP-URL für die Seite, über die sich Benutzer authentifizieren, indem sie ihren Benutzernamen und ihr Kennwort eingeben. Verwenden Sie:
https://login.microsoftonline.com/<Azure-Active-Directory-TenantID>/oauth2/v2.0/authorize
- Client-ID und Client Secret: Die Client-ID und das Secret für die registrierte Azure AD-Anwendung (OAuth-Client). Verwenden Sie die Anwendungs-ID und das Anwendungs-Secret.
- Geltungsbereich:
<Application(client)_ID_for_your_bot>/access_as_user
- Subject-Anspruch: Der zu verwendende Zugriffstoken-Profilanspruch zur Identifizierung des Benutzers. Verwenden Sie E-Mail.
Authentifizierungsservice aus Skills referenzieren
Nehmen Sie in Skills, die eine SSO-Authentifizierung erfordern, die Komponente OAuth 2.0-Accountlink in den Dialogablauf auf, um die Authentifizierung über den Authentifizierungsservice zu verarbeiten. Setzen Sie die Eigenschaft enableSingleSignOn
in dieser Komponente auf true
. (Bei YAML-basierten Dialogabläufen heißt die Komponente System.OAuth2AccountLink.)
Tipp:
Wenn Sie den Namen des Authentifizierungsservice in der Komponente nicht hartcodieren möchten, können Sie einen benutzerdefinierten Parameter erstellen und diesen an die Komponente übergeben. Siehe Benutzerdefinierte Parameter.Unterstützte Funktionen
Microsoft Teams-Kanäle in Digital Assistant unterstützen die folgenden Funktionen:
- Text (Senden und Empfangen)
- Bilder (Senden und Empfangen)
- Dateien (Senden und Empfangen)
- Emojis (Senden und Empfangen)
- Links
- Postbacks
- Benutzerdefinierte Eigenschaften
- Karussellkomponenten
- Listenkomponenten
Wenn Sie Ihren Skill auf mehrere Kanäle mit unterschiedlichen Formatierungsfunktionen und Syntax ausrichten, können Sie grundlegende HTML-Markups in Ihren Nachrichten verwenden. Wenn Sie dies tun, wird dieses Markup bei der Übertragung der Nachricht an den Kanal automatisch in das Microsoft Teams-Markdown-Format konvertiert. Dies ist besonders nützlich, wenn Sie Ihre Fähigkeiten zusätzlich zu Microsoft Teams auf andere Kanäle ausrichten. Siehe Rich-Text-Formatierung in Kanälen.
Nachrichten-Constraints
Für Microsoft Teams-Kanäle in Digital Assistant gelten die folgenden Nachrichten-Constraints:
- Textnachrichten
- Maximale Länge der Textaktionslabel: 1 Zeile (ca. 50 Zeichen)
- Zulässige Textaktionen: Postback, Aufruf, URL
- Horizontale Karten
- Maximale Länge des Titels: 2 Zeilen (ca. 80 Zeichen)
- Maximale Länge der Beschreibung: 25.000 Zeichen
- Maximale Länge des Kartenaktionslabels: 1 Zeile (ca. 50 Zeichen)
- Maximale Anzahl der Karten: 10
- Maximale Anzahl der Kartenaktionen: 6. Wenn die Anzahl der Kartenaktionen 6 überschreitet, wird die Karte dupliziert, um die verbleibenden Kartenaktionen wiederzugeben.
- Mindestanzahl der Kartenaktionen: 0
- Maximale Anzahl der Kartenlistenaktionen: 6
- Ist mindestens eine Beschreibung, ein Bild oder eine Aktion erforderlich? Nein
- Zulässige Arten von Kartenaktionen: Postback, Aufruf, URL
- Zulässige Arten von Kartenlistenaktionen: Postback, Aufruf, URL
- Vertikale Karten
- Maximale Länge des Titels: 2 Zeilen (ca. 80 Zeichen)
- Maximale Länge der Beschreibung: 25.000 Zeichen
- Maximale Länge des Kartenaktionslabels: 1 Zeile (ca. 50 Zeichen)
- Maximale Anzahl der Karten: 10
- Maximale Anzahl der Kartenaktionen: 3
- Mindestanzahl der Kartenaktionen: 0
- Maximale Anzahl der Kartenlistenaktionen: 6
- Ist mindestens eine Beschreibung, ein Bild oder eine Aktion erforderlich? Nein
- Zulässige Arten von Kartenaktionen: Postback, Aufruf, URL
- Zulässige Arten von Kartenlistenaktionen: Postback, Aufruf, URL
- Anhangsnachrichten
- Unterstützt? Ja
- Zulässige Aktionsarten: Postback, Aufruf, URL
- Aktionsschaltflächen
- Maximale Länge des globalen Aktionslabels: 1 Zeile (ca. 50 Zeichen)
- Maximale Anzahl globaler Aktionen: 6
- Zulässige Arten von globalen Aktionen: Postback, Aufruf, URL
Adaptive Karten in Microsoft Teams
Bei Skills, die Sie über Microsoft Teams-Kanäle in Oracle Digital Assistant bereitstellen, können Sie adaptive Karten verwenden.
Verwenden Sie dazu das Element channelCustomProperties
in der Komponente "Allgemeine Antwort", und setzen Sie die Eigenschaft type
auf "AdaptiveCard"
.
Sie können dieses Element auf den folgenden Ebenen in der Komponente verwenden:
- Auf der Ebene eines Kartenelements in einem
cards
-Antwortelement. Auf diese Weise können Sie eine einzelne adaptive Kartenstruktur definieren, die mehrmals mit einem Stempel versehen wird, wenn eine EigenschaftiteratorVariable
für das Kartenelement angegeben wurde. - Auf der Ebene eines Textantwortelements, im Allgemeinen um eine einzelne adaptive Karte zu erstellen. (Mehrere Karten können definiert werden, aber die Eigenschaft
iteratorVariable
wird hier nicht unterstützt.)
Tipp:
Im Dialogablaufeditor (im Dialogmodus "Visuell" und "YAML") befindet sich eine Microsoft Adaptive Cards-Vorlage mit Beispielmetadaten, die Sie an Ihre Anforderungen anpassen können.Microsoft Teams unterstützt derzeit kein Karussell mit adaptiven Karten. In Bezug auf die Metadaten der Komponente "Allgemeine Antwort" bedeutet dies, dass die Eigenschaft des Kartenlayouts ignoriert wird. Die Karten werden immer vertikal angeordnet, da das horizontale Layout (Karussell) nicht unterstützt wird.
Eine zweite Einschränkung, die es zu beachten gilt, besteht darin, dass das Schaltflächenlabel nicht als Benutzernachricht in der Unterhaltungshistorie ausgegeben wird, wenn ein Benutzer auf eine Schaltfläche tippt, die in der adaptiven Karte enthalten ist. Anders ausgedrückt, der Benutzer erhält keine visuelle Bestätigung für die ausgewählte Schaltfläche. Dies kann zu einer inkonsistenten Benutzererfahrung führen, weil mit einfachen Textnachrichten oder mit Schaltflächen, die mit Standardkarten der Komponente "Allgemeine Antwort" (mit der Microsoft Hero-Karte) angezeigt werden, das Schaltflächenlabel ausgegeben wird.
Beispiel: Adaptive Karte in Kartenantwortelement
Um mehrere Karten auszuschließen, können Sie die Eigenschaft iteratorVariable
mit dem Element card
in einem Antwortelement des Typs "Karten" verwenden. Im folgenden Beispiel werden mit einer adaptiven Karte mehrere Pizzakarten ausgeschlossen:
responseItems:
- type: "cards"
headerText: "Here are our pizzas you can order today:"
cardLayout: "horizontal"
cards:
- title: "${pizzas.name}"
description: "${pizzas.description}"
imageUrl: "${pizzas.image}"
iteratorVariable: "pizzas"
actions:
- label: "Order Now"
type: "postback"
payload:
action: "order"
variables:
orderedPizza: "${pizzas.name}"
orderedPizzaImage: "${pizzas.image}"
channelCustomProperties:
- channel: "msteams"
properties:
adaptiveCard:
type: "AdaptiveCard"
version: "1.0"
fallbackText: "Adaptive card version not supported"
body:
- type: "TextBlock"
text: "${pizzas.name}"
weight: "bolder"
- type: "TextBlock"
text: "${pizzas.description}"
wrap: true
- type: "Image"
url: "${pizzas.image}"
horizontalAlignment: "center"
actions:
- type: "Action.Submit"
title: "Order"
data:
action: "order"
variables:
orderedPizza: "${pizzas.name}"
orderedPizzaImage: "${pizzas.image}"
Beispiel: Adaptive Karte in Textantwortelement
Sie können eine adaptive Karte mit einem Textantwortelement wie folgt definieren:
responseItems:
- type: "text"
text: "This text is replaced with adaptive card defined in custom property"
footerText: "Is that correct?"
visible:
expression: "${system.channelType=='msteams' && system.entityToResolve.value.name=='Confirmed'}"
channelCustomProperties:
- channel: "msteams"
properties:
adaptiveCard:
type: "AdaptiveCard"
version: '1.0'
fallbackText: "Adaptive card version not supported"
body:
- type: TextBlock
text: 'I have all information needed to create your expense. Just to verify my understanding, here is an overview of your expense:'
wrap: true
- type: FactSet
facts:
- title: Expense Type
value: "${expense.value.Type}"
- title: Amount
value: "${expense.value.Amount.totalCurrency}"
- title: Date
value: "${expense.value.Date.date?number_to_date}"
- title: Receipt URL
value: "${expense.value.Receipt?has_content?then(expense.value.Receipt.url,'N/A')}"
actions:
- type: Action.ShowCard
title: Edit
id: edit
card:
type: AdaptiveCard
version: '1.0'
body:
- type: TextBlock
size: Medium
weight: Bolder
text: Edit Expense
- type: TextBlock
text: Expense Type
weight: Bolder
- type: Input.ChoiceSet
choices:
- title: Metro, bus, train
value: Public transport
- title: Taxi
value: Taxi
- title: Breakfast, lunch, dinner
value: dinner
id: Type
value: "${expense.value.Type!''}"
spacing: None
- type: TextBlock
text: Amount
weight: Bolder
- type: Input.Text
id: amount
spacing: None
value: "${expense.value.Amount?has_content?then(expense.value.Amount.totalCurrency,'')}"
- type: TextBlock
text: Date
weight: Bolder
- type: Input.Date
id: Date
value: "${expense.value.Date?has_content?then(expense.value.Date.date?number_to_date,'')}"
spacing: None
actions:
- type: Action.Submit
title: Submit
id: submit
Sie können auch mehrere adaptive Karten in dieser benutzerdefinierten Eigenschaft definieren. Stellen Sie dazu der Eigenschaft type
einen Bindestrich (-
) voran, um eine YAML-Liste anstelle einer Zuordnung anzugeben:
channelCustomProperties:
- channel: "msteams"
properties:
adaptiveCard:
- type: AdaptiveCard
body: ...
- type: AdaptiveCard
body: ...
Dies kann praktisch sein, wenn Sie mehrere statische Karten ausschließen müssen. In der Regel werden jedoch mehrere Karten mit der Eigenschaft iteratorVariable
ausgeschlossen.
Weiterleitungsaktionen
Adaptive Karten verfügen über eine Weiterleitungsaktion (Action.Submit
), mit der Sie Benutzereingaben erfassen und an den Skill senden können.
Sie definieren die Payload der Aktion in der Eigenschaft data
der Weiterleitungsaktion. Wenn die Komponente "Allgemeine Antwort" den Übergang nach Auswahl der Schaltfläche durchführen soll oder Sie Variablen festlegen möchten, können Sie die Standardeigenschaften action
und variables
verwenden:
actions:
- type: "Action.Submit"
title: "Order"
data:
action: "order"
variables:
orderedPizza: "${pizzas.name}"
orderedPizzaImage: "${pizzas.image}"
Wenn Sie Eingabefelder in der Karte verwenden, werden Name und Wert dieser Felder als Schlüssel/Wert-Paare zum JSON-Objekt data
hinzugefügt. Das Beispiel oben mit der Karte Spesen bearbeiten enthält drei Felder zur Änderung von Spesentyp, Betrag und Datum. Wenn der Benutzer in diesem Fall auf die Schaltfläche Weiterleiten tippt, wird ein JSON-Objekt wie das Folgende gesendet:
{
"Type" : "Taxi",
"Amount" : "10.0 dollar"
"Date" : "2019-09-02"
}
Die Komponente "Gemeinsame Antwort" kann diese Informationen nicht verarbeiten, da sie nicht der gemeinsamen Payload-Struktur mit den Eigenschaften action
und variables
entspricht. Um dieses Problem zu beheben, haben Sie folgende Optionen:
-
Konvertieren Sie die JSON-Payload in eine Zeichenfolge, die anschließend für Entitys abgeglichen wird. Wenn Übereinstimmungen gefunden werden, wird die mit der Komponente festgelegte Variable mit dem entsprechenden Entitywert bzw. den entsprechenden Entitywerten aktualisiert (bei einer Mischentität).
Um diese Option zu konfigurieren, fügen Sie die boolesche Eigenschaft
system.convertToString
der Eigenschaftdata
der Weiterleitungsaktion hinzu:actions: - type: Action.Submit title: Submit id: submit data: system.convertToString: true
-
Überlassen es dem Skill, Variablen mit denselben Namen wie die Eingabefelder zu aktualisieren. Im obigen Beispiel werden die Variablen
"Type"
,"Amount"
und"Date"
aktualisiert.Um diese Option zu konfigurieren, fügen Sie die boolesche Eigenschaft
system.setVariables
der Eigenschaftdata
der Weiterleitungsaktion hinzu:actions: - type: Action.Submit title: Submit id: submit data: system.setVariables: true
Wenn Sie keine dieser Optionen konfigurieren, werden die weitergeleiteten Werte einfach ignoriert.
Wenn Sie eine Komponente "Gemeinsame Antwort" mit einer Mischentity verwenden, werden Sie in der Regel die erste Option verwenden, die alle übereinstimmenden Entitys in der Tasche basierend auf der Zeichenfolgen-JSON-Payload auffüllt.
Sie müssen die Eigenschaft
processUserMessage
der Komponente auf true
setzen, damit diese Weiterleitungsaktionen ausgeführt werden können.
Text der ausgewählten Schaltfläche in adaptiver Karte anzeigen
Wenn ein Benutzer eine Schaltfläche in einer adaptiven Karte auswählt, wird dies in der Unterhaltung nur angezeigt, wenn Sie eine messageBack
-Aktion für die Karte aufnehmen.
Informationen zum Einrichten einer messageBack
-Aktion finden Sie unter https://docs.microsoft.com/en-us/microsoftteams/platform/task-modules-and-cards/cards/cards-actions#adaptive-cards-with-messageback-action.
Schaltflächen und Felder in adaptiven Karten deaktivieren
Obwohl Sie Schaltflächen und Felder in adaptiven Karten eigentlich nicht deaktivieren können, können Sie eine ähnliche Wirkung erzielen, indem Sie die Karte bei Aufruf einer Weiterleitungsaktion ersetzen. Dazu verwenden Sie die für Microsoft Teams spezifische boolesche Eigenschaft replaceMessage
in gemeinsamen Antwortkomponenten.
Damit die Karte auf diese Weise neu gerendert werden kann, fügen Sie diese Eigenschaft im Abschnitt channelCustomProperties
der benutzerdefinierten Antwortkomponente hinzu:
...
- type: "text"
text: "This text is replaced with the adaptive card defined in custom property"
channelCustomProperties:
- channel: "msteams"
properties:
replaceMessage: "true"
adaptiveCard:
...
Sie können auch einen Apache FreeMarker-Ausdruck verwenden, um den Eigenschaftswert festzulegen.
Tipps zum Erstellen von Definitionen adaptiver Karten
Das JSON-Schema für adaptive Karten ist relativ komplex und unterstützt viele verschiedene Konstrukte. Daher ist es fehleranfällig, wenn Sie versuchen, den Inhalt adaptiver Karten direkt innerhalb einer Common Respone-Komponente von Hand zu definieren. Der folgende Prozess zur Erstellung der adaptiven Karten ist möglicherweise einfacher:
- Erstellen Sie mit den visuellen Tools im Designer für adaptive Karten von Microsoft die Definition für die adaptiven Karten.
- Klicken Sie auf Karten-JSON kopieren, um die Definition im JSON-Format abzurufen.
- Verwenden Sie einen Online-Converter (wie https://jsonformatter.org/json-to-yaml), um die Definition in YAML zu konvertieren.
- Kopieren Sie das Ergebnis in einen Texteditor, und fügen Sie den für die entsprechende Stelle in der Definition des Dialogablaufs erforderlichen Einzug ein.
- Fügen Sie den daraus resultierenden Text in den Dialogablauf ein.
Informationen zu den von Teams unterstützten Versionen von adaptiven Karten finden Sie unter https://docs.microsoft.com/en-us/adaptive-cards/resources/partners. Sie können https://adaptivecards.io/explorer/ besuchen, um eine Liste aller Elemente und Eigenschaften sowie die Version anzuzeigen, in der sie eingeführt wurden.
Beachten Sie, dass der Designer für adaptive Karten die Kombination der verwendeten Elemente und die Versionsnummer der adaptiven Karten nicht überprüft. Beispiel: Das Element ActionSet
wurde in Version 1.2 eingeführt, aber der Designer hindert Sie nicht daran, dieses Element hinzuzufügen, selbst wenn Sie im Designer 1.0 als Versionsnummer angegeben haben.
Wenn Sie Aktionen mit Version 1.0 verwenden möchten, können Sie die separate Eigenschaft actions
unter der Eigenschaft body
verwenden. Dieses actions
-Element kann nicht mit dem visuellen Designer hinzugefügt werden, sodass Sie es manuell hinzufügen müssen.
Willkommensnachricht für einen digitalen Assistenten deaktivieren
Wenn ein Benutzer über einen Microsoft Teams-Kanal eine Verbindung zu einem digitalen Assistenten herstellt, wird eine interne Nachricht an den digitalen Assistenten gesendet, um eine Unterhaltung zu initiieren. Standardmäßig ist diese Nachricht das Wort "Hilfe", das dann das help
-System-Intent des digitalen Assistenten auslöst. Dadurch werden eine Willkommensnachricht und Karten für die Skills des digitalen Assistenten angezeigt.
Um dieses Verhalten zu deaktivieren, ändern Sie die Eigenschaft Internal Welcome Message
in einen anderen Wert als "help". Sie können den Wert für diese Eigenschaft im Resource Bundle des digitalen Assistenten ändern.
So ändern Sie die interne Nachricht, die auf den digitalen Assistenten gesetzt ist, wenn der Benutzer eine Verbindung zu einem Team herstellt:
- Klicken Sie auf
, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Digitale Assistenten aus, und öffnen Sie Ihren digitalen Assistenten.
- Klicken Sie in der linken Navigationsleiste für den digitalen Assistenten auf
,, und wählen Sie die Registerkarte Konfiguration aus.
- Geben Sie im Feld Filter den Wert
internal
ein, um die Liste der Resource Bundle-Schlüssel schnell einzugrenzen. - Wählen Sie die Taste Sonstige - internalWelcomeMessage aus.
- Bewegen Sie den Mauszeiger über den Wert für den Schlüssel, und wählen Sie das angezeigte Symbol
.
- Ersetzen Sie den Wert durch den Wert, den Sie verwenden möchten, und klicken Sie auf Eintrag aktualisieren.
Wenn sich Ihr digitaler Assistent auf einer Plattformversion vor 21.04 befindet, werden Resource-Bundle-Schlüssel nicht automatisch für die Konfigurationseigenschaften definiert. In diesem Fall können Sie nur den Wert der Eigenschaft auf der Seite Einstellungen der digitalen Assistenten aktualisieren (die Sie öffnen können, indem Sie auf

Willkommensnachricht für einen Skill aktivieren
Wenn sich ein Benutzer über einen Microsoft Teams-Kanal direkt mit einem Standalone-Skill verbindet, wird standardmäßig keine Willkommensnachricht an den Benutzer gesendet. Wenn Sie jedoch die Eigenschaft "Willkommensstatus" des Skills konfigurieren, verwendet der Skill diesen Status, um eine Nachricht anzuzeigen, wenn der Benutzer eine Verbindung herstellt.
- Klicken Sie auf
, um das Seitenmenü zu öffnen, wählen Sie Entwicklung > Skills aus, und öffnen Sie Ihren Skill.
- Klicken Sie in der linken Navigationsleiste für den Skill auf
, und wählen Sie die Registerkarte Digital Assistant aus.
- Geben Sie im Feld Willkommensstatus den Namen des Status ein, für den Sie die Willkommensnachricht anzeigen möchten.
Die Verwendung der Eigenschaft Willkommensstatus auf diese Weise für einen Standalone-Skill funktioniert nur für Microsoft Teams-Kanäle. Bei anderen Kanälen wird diese Eigenschaft in eigenständigen Skills ignoriert.