Desenrolamento de linkLink unfurling

Importante

Os exemplos de código nesta seção são baseados em 4.6 e versões posteriores do SDK da Estrutura de Bot.The code samples in this section are based on 4.6 and later versions of the Bot Framework SDK. Se você estiver procurando documentação para versões anteriores, consulte a seção Extensões de Mensagens - V3 SDK na pasta Recursos da documentação.If you're looking for documentation for earlier versions, see the Messaging Extensions - v3 SDK section in the Resources folder of the documentation.

Este documento orienta você sobre como adicionar link desfraldado ao manifesto do aplicativo usando o App studio e manualmente.This document guides you on how to add link unfurling to your app manifest using App studio and manually. Com o desenrolamento do link, seu aplicativo pode se registrar para receber uma atividade invoke quando URLs com um domínio específico são coladas na área de composição de mensagem.With link unfurling your app can register to receive an invoke activity when URLs with a particular domain are pasted into the compose message area. O contém a URL completa que foi colar na área de mensagem de composição e você pode responder com um cartão que o usuário pode desafraldar, fornecendo informações ou invoke ações adicionais.The invoke contains the full URL that was pasted into the compose message area, and you can respond with a card that the user can unfurl, providing additional information or actions. Isso funciona de forma semelhante a um comando de pesquisa com a URL servindo como o termo de pesquisa.This works similar to a search command with the URL serving as the search term.

Observação

Atualmente, não há suporte para a desalinização de link em clientes Móveis.Currently, link unfurling is not supported on Mobile clients.

A Azure DevOps de mensagens usa o link desfraldamento para procurar URLs colaram na área de mensagem de composição apontando para um item de trabalho.The Azure DevOps messaging extension uses link unfurling to look for URLs pasted into the compose message area pointing to a work item. Na imagem a seguir, um usuário pastou uma URL para um item de trabalho no Azure DevOps, que a extensão de mensagens resolveu em um cartão:In the following image, a user has pasted a URL for a work item in Azure DevOps, which the messaging extension has resolved into a card:

Exemplo de desfraldamento de link

Para adicionar a desaplicação de link ao manifesto do aplicativo, adicione uma nova matriz à seção messageHandlers composeExtensions do manifesto JSON do aplicativo.To add link unfurling to your app manifest, add a new messageHandlers array to the composeExtensions section of your app manifest JSON. Você pode adicionar a matriz com a ajuda do App Studio ou manualmente.You can add the array either with the help of App Studio or manually. Listagem de domínio pode incluir caracteres curinga, por exemplo *.example.com .Domain listings can include wildcards, for example *.example.com. Isso corresponde a exatamente um segmento do domínio; se você precisar corresponder, a.b.example.com use *.*.example.com .This matches exactly one segment of the domain; if you need to match a.b.example.com then use *.*.example.com.

Observação

Não adicione domínios que não estão em seu controle, diretamente ou por meio de caracteres curinga.Donot add domains that are not in your control, either directly or through wildcards. Por exemplo, yourapp.onmicrosoft.com é válido, mas *.onmicrosoft.com não é válido.For example, yourapp.onmicrosoft.com is valid, but *.onmicrosoft.com is not valid. Além disso, os domínios de nível superior são proibidos.Also, the top-level domains are prohibited. Por exemplo, *.com , *.org .For example, *.com, *.org.

  1. Abra o App Studio no cliente Microsoft Teams e selecione a guia Editor de Manifesto.Open App Studio from the Microsoft Teams client, and select the Manifest Editor tab.

  2. Carregue o manifesto do aplicativo.Load your app manifest.

  3. Na página Extensão de Mensagens, adicione o domínio que você deseja procurar na seção Manipuladores de mensagens.On the Messaging Extension page, add the domain that you want to look for in the Message handlers section. A imagem a seguir explica o processo:The following image explains the process:

    seção manipuladores de mensagens no App Studio

Para permitir que sua extensão de mensagens interaja com links, primeiro você deve adicionar a messageHandlers matriz ao manifesto do aplicativo.To enable your messaging extension to interact with links, first you must add the messageHandlers array to your app manifest. O exemplo a seguir explica como adicionar o link desfraldamento manualmente:The following example explains how to add link unfurling manually:

...
"composeExtensions": [
  {
    "botId": "abc123456-ab12-ab12-ab12-abcdef123456",
    "messageHandlers": [
      {
        "type": "link",
        "value": {
          "domains": [
            "*.trackeddomain.com"
          ]
        }
      }
    ]
  }
],
...

Para um exemplo de manifesto completo, consulte referência de manifesto.For a complete manifest example, see manifest reference.

Depois de adicionar o domínio ao manifesto do aplicativo, você deve atualizar seu código de serviço Web para manipular a solicitação de invocação.After adding the domain to the app manifest, you must update your web service code to handle the invoke request. Use a URL recebida para pesquisar seu serviço e criar uma resposta de cartão.Use the received URL to search your service and create a card response. Se você responder com mais de um cartão, somente a resposta do primeiro cartão será usada.If you respond with more than one card, only the first card response is used.

Os seguintes tipos de cartão são suportados:The following card types are supported:

ExemploExample

protected override async Task<MessagingExtensionResponse> OnTeamsAppBasedLinkQueryAsync(ITurnContext<IInvokeActivity> turnContext, AppBasedLinkQuery query, CancellationToken cancellationToken)
{
    //You'll use the query.link value to search your service and create a card response
    var card = new HeroCard
    {
        Title = "Hero Card",
        Text = query.Url,
        Images = new List<CardImage> { new CardImage("https://raw.githubusercontent.com/microsoft/botframework-sdk/master/icon.png") },
    };

    var attachments = new MessagingExtensionAttachment(HeroCard.ContentType, null, card);
    var result = new MessagingExtensionResult(AttachmentLayoutTypes.List, "result", new[] { attachments }, null, "test unfurl");

    return new MessagingExtensionResponse(result);
}

Confira tambémSee also

CartõesCards