Codebeispiel für das Universal Actions-Modell – Spesengenehmigung
Dieses Beispiel veranschaulicht die Implementierung des universellen Aktionsmodells, die für adaptive Karten version 1.4 oder höher verfügbar ist.
Voraussetzungen
- Der Outlook/OWA-Client ist verfügbar, und Sie verfügen über ein Konto.
- Eine gültige Azure-Teilmenge.
- Grundlegendes zu Azure Bot Framework.
Setup für Bot
- Registrieren Sie einen Bot bei Azure Bot Service, indem Sie die anweisungen hier befolgen.
- Stellen Sie sicher, dass Sie den Outlook-Kanal aktiviert haben.
- Öffnen Sie Ihre Botressource im Azure-Portal.
- Öffnen Sie den Bereich Kanäle .
- Wählen Sie im Abschnitt Verfügbare Kanäle den Outlook-Kanal aus.
- Klicken Sie auf der Registerkarte Aktionen erfordernde Meldungen auf Anwenden , und registrieren Sie sich hier.
- Füllen Sie das Registrierungsformular aus, um Zugriff anzufordern. Weitere Informationen finden Sie unter Registrieren Ihres Diensts beim E-Mail-Entwickler-Dashboard für Aktionen.
- Erstellen Sie Ihren Bot mit dem Bot Framework SDK, indem Sie die hier beschriebenen Anweisungen ausführen.
Schritt 1: Sicherstellen, dass Ihre adaptiven Karte Nutzlasten bereit sind
Für das Genehmigungsszenario finden Sie die JSON-Nutzlast hier. Unten sehen Sie das Rendern der Nutzlast auf mobilen und Desktopbildschirmen.
Für universelle Aktionen müssen Sie verwenden Action.Execute
, um Eingabefelder zu sammeln und eine Invoke
Aktivität vom Typ adaptiveCard/action
an den Zielbot zu senden. Der Zielbot kann die ausgeführte Aktion mithilfe des verb
Felds identifizieren. Jede zusätzliche Eingabe kann mithilfe des -Felds data
gesendet werden.
JSON-Nutzlast
Im Folgenden finden Sie einen Codeausschnitt des Szenarios Aktionen für die Genehmigung.
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Accept",
"verb": "approvalAccept",
"data": {},
"isPrimary": true,
"style": "positive"
},
{
"type": "Action.ShowCard",
"id": "e1487cbc-66b0-037e-cdc4-045fb7d8d0b8",
"title": "Reject",
"card": {
"type": "AdaptiveCard",
"body": [
{
"type": "Input.Text",
"id": "Comment",
"placeholder": "Add a comment",
"isMultiline": true
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Submit",
"verb": "approvalReject",
"data": {
"comment": "${Comment.value}"
}
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"fallbackText": "Unable to render the card",
"padding": "None"
}
}
],
"spacing": "None"
}
Weitere Informationen finden Sie unter Action.Execute-Schema und -Eigenschaften.
Schritt 2: Schreiben von benutzerdefinierter Geschäftslogik im Bot zur Genehmigung
Im Azure-Bot können Sie die OnAdaptiveCardInvokeAsync-Methode verwenden, um die Aktion mithilfe des verb
Felds zu erfassen, Ihre Geschäftslogik hinzuzufügen und die Aktualisierungs-Karte zurück an Outlook zu senden.
protected override async Task<AdaptiveCardInvokeResponse> OnAdaptiveCardInvokeAsync(
ITurnContext<IInvokeActivity> turnContext,
AdaptiveCardInvokeValue invokeValue,
CancellationToken cancellationToken)
{
try
{
// Approval Scenario
if (invokeValue.Action.Verb == "approvalAccept")
{
// This function can contain your business logic
// to capture the approval and show the refresh card
return await ProcessApprovalAccepted();
}
else if (invokeValue.Action.Verb == "approvalReject")
{
// This function can contain you business logic
// to capture the rejection and show the refresh card
return await ProcessApprovalRejected();
}
else
{
throw new InvokeResponseException(HttpStatusCode.NotImplemented);
}
}
catch (AdaptiveCardActionException e)
{
throw new InvokeResponseException(HttpStatusCode.NotImplemented, e.Response);
}
}
Sie können Ihren Bot lokal testen oder in Azure bereitstellen.
Schritt 3: Senden der Nachricht mit Aktionen
Sie können die Aktion erfordernde Nachricht mit universellen Aktionen ähnlich wie jede andere Aktion erfordernde Nachricht senden. Weitere Informationen finden Sie unter Senden einer Nachricht mit Aktionen per E-Mail.