Codebeispiel für das Universal Actions-Modell – Projektmanagement
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.
- Ein gültiges Azure-Abonnement.
- 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 Projektverwaltungsszenario finden Sie die JSON-Nutzlast hier. Unten sehen Sie, wie die Nutzlast auf mobilen und Desktopbildschirmen gerendert wird.
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
Hier sehen Sie einen Codeausschnitt des Szenarios Aktionen für die Projektverwaltung.
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Mark complete",
"verb": "markComplete",
"data": {},
"isPrimary": true,
"style": "positive"
},
{
"type": "Action.ShowCard",
"title": "Add a comment",
"card": {
"type": "AdaptiveCard",
"body": [
{
"type": "Input.Text",
"id": "AddComment",
"placeholder": "Add a comment",
"isMultiline": true
},
{
"type": "ActionSet",
"actions": [
{
"type": "Action.Execute",
"title": "Submit",
"verb": "projectSubmitComment",
"data": "{Reason: {{AddComment.value}}}"
}
]
}
],
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
"padding": "None"
}
}
],
"spacing": "None"
}
Weitere Informationen finden Sie unter Action.Execute-Schema und -Eigenschaften.
Schritt 2: Schreiben von benutzerdefinierter Geschäftslogik im Bot für die Projektverwaltung
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
{
if (invokeValue.Action.Verb == "markComplete")
{
// This function can contain your business logic
// to capture the complete action and show the refresh card
return await ProcessProjectMarkComplete();
}
else if (invokeValue.Action.Verb == "projectSubmitComment")
{
// This function can contain your business logic
// to submit the comment and show the refresh car
return await ProcessProjectSubmitComment();
}
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.