Exemplo de código do Modelo de Ações Universais – Aprovação de Despesas
Este exemplo ilustra a implementação do Modelo de Ação Universal disponível para cartões adaptáveis versão 1.4 ou superior.
Pré-requisitos
- O cliente Outlook/OWA está disponível e você tem uma conta.
- Uma subscipção válida do Azure.
- Compreensão do Azure Bot Framework.
Configuração para bot
- Registre um bot com o Azure Serviço de Bot, seguindo as instruções aqui.
- Verifique se você habilitou o Outlook Channel.
- Abra o recurso do bot no portal do Azure.
- Abra o painel Canais .
- Selecione o canal do Outlook na seção Canais Disponíveis .
- Na guia Mensagens Acionáveis , clique em Aplicar seguido, registre-se aqui.
- Preencha o formulário de registro para solicitar acesso. Consulte Registrar seu serviço com o desenvolvedor de email acionável dashboard para obter mais informações.
- Crie seu bot com o SDK do Bot Framework, seguindo a instrução aqui.
Etapa 1: verifique se as cargas de cartão adaptáveis estão prontas
Para o cenário de aprovações, você pode encontrar o conteúdo JSON aqui. Abaixo, você pode ver a renderização de carga em telas móveis e de área de trabalho.
Para Ações Universais, você precisa usar Action.Execute
o que reúne campos de entrada e enviar uma Invoke
atividade do tipo adaptiveCard/action
para o bot de destino. O bot de destino pode identificar a Ação feita usando o verb
campo. Qualquer entrada adicional pode ser enviada usando o data
campo.
Carga JSON
Aqui está um snippet do cenário Ações para Aprovação.
{
"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"
}
Para obter mais informações, consulte Action.Execute schema and properties
Etapa 2: escrever lógica de negócios personalizada no bot para aprovação
No bot do Azure, você pode usar o método OnAdaptiveCardInvokeAsync para capturar a ação usando o verb
campo, adicionar sua lógica de negócios e enviar a atualização cartão de volta ao 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);
}
}
Você pode testar seu bot localmente ou implantar seu bot no Azure.
Etapa 3: Enviar a Mensagem Acionável
Você pode enviar a Mensagem Acionável apoiada por Ações Universais semelhante a qualquer outra Mensagem Acionável. Para obter mais informações, consulte Enviar uma mensagem acionável por email.