Freigeben über


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

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.