Exemple de code du modèle Actions universelles - Approbation des dépenses
Cet exemple illustre l’implémentation du modèle d’action universel disponible pour les cartes adaptatives version 1.4 ou ultérieure.
Conditions préalables
- Le client Outlook/OWA est disponible et vous disposez d’un compte.
- Une subsciption Azure valide.
- Compréhension d’Azure Bot Framework.
Configuration du bot
- Inscrivez un bot auprès d’Azure Bot Service en suivant les instructions fournies ici.
- Vérifiez que vous avez activé le canal Outlook.
- Ouvrez votre ressource de bot dans le Portail Azure.
- Ouvrez le volet Canaux .
- Sélectionnez le canal Outlook dans la section Canaux disponibles .
- Sous l’onglet Messages actionnables , cliquez sur Appliquer , puis inscrivez-vous ici.
- Remplissez le formulaire d’inscription pour demander l’accès. Pour plus d’informations, consultez Inscrire votre service auprès du tableau de bord du développeur de messagerie actionnable .
- Créez votre bot avec le Kit de développement logiciel (SDK) Bot Framework, en suivant les instructions fournies ici.
Étape 1 : Vérifier que vos charges utiles carte adaptatives sont prêtes
Pour le scénario d’approbations, vous trouverez la charge utile JSON ici. Ci-dessous, vous pouvez voir le rendu de la charge utile dans les écrans mobiles et de bureau.
Pour les actions universelles, vous devez utiliser Action.Execute
qui collecte les champs d’entrée et envoie une Invoke
activité de type adaptiveCard/action
au bot cible. Le bot cible peut identifier l’action effectuée à l’aide du verb
champ . Toute entrée supplémentaire peut être envoyée à l’aide du data
champ .
Charge utile JSON
Voici un extrait de scénario Actions pour approbation.
{
"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"
}
Pour plus d’informations, consultez Schéma et propriétés Action.Execute
Étape 2 : Écrire une logique métier personnalisée dans le bot pour approbation
Dans le bot Azure, vous pouvez utiliser la méthode OnAdaptiveCardInvokeAsync pour capturer l’action à l’aide du verb
champ , ajouter votre logique métier et renvoyer le carte d’actualisation à Outlook.
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);
}
}
Vous pouvez tester votre bot localement ou le déployer sur Azure.
Étape 3 : Envoi du message actionnable
Vous pouvez envoyer le message actionnable soutenu par des actions universelles comme n’importe quel autre message actionnable. Pour plus d’informations, consultez Envoyer un message actionnable par e-mail.