Apertura de vínculos

Importante

Los ejemplos de código de esta sección se basan en 4,6 y versiones posteriores del SDK de bot Framework. Si está buscando documentación para versiones anteriores, vea la sección de extensiones de mensajería-V3 SDK en la carpeta recursos de la documentación.

Nota

Actualmente, Link unfurling no se admite en clientes móviles.

Con unfurling de vínculos se puede registrar la aplicación para recibir una invoke actividad cuando se pegan direcciones URL con un dominio en particular en el área de mensaje de redacción. El invoke contendrá la dirección URL completa que se pegó en el área de mensaje de redacción y puede responder con una tarjeta que el usuario puede unfurl, lo que proporciona información o acciones adicionales. Esto funciona de manera muy similar a un comando de búsqueda, con la dirección URL que actúa como el término de búsqueda.

La extensión de mensajería de Azure DevOps usa el vínculo unfurling para buscar direcciones URL pegadas en el área de mensaje de redacción que apunta a un elemento de trabajo. En la siguiente captura de pantalla, un usuario ha pegado en una dirección URL de un elemento de trabajo en Azure DevOps que la extensión de mensajería se ha resuelto en una tarjeta.

Ejemplo de vínculo unfurling

Para ello, agregará una nueva messageHandlers matriz a la composeExtensions sección del JSON del manifiesto de la aplicación. Puede hacerlo con la ayuda de App Studio, o bien manualmente. Las listas de dominios pueden incluir caracteres comodín, por ejemplo *.example.com . Esto coincide exactamente con un segmento del dominio; Si tiene que hacer coincidir a.b.example.com , use *.*.example.com .

Usar App Studio

  1. En App Studio, en la pestaña Editor de manifiestos, cargue el manifiesto de la aplicación.
  2. En la página extensión de mensajería , agregue el dominio que quiera buscar en la sección controladores de mensajes , como se muestra en la captura de pantalla siguiente.

sección Controladores de mensajes en App Studio

Manualmente

Para habilitar la extensión de mensajería para que interactúe con los vínculos de esta forma, primero tendrá que agregar la messageHandlers matriz al manifiesto de la aplicación, como en el ejemplo siguiente. Este ejemplo no es el manifiesto completo, vea el manifiesto referencia para obtener un ejemplo completo de manifiesto.

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

Una vez que haya agregado el dominio para escuchar en el manifiesto de la aplicación, deberá actualizar el código del servicio web para administrar la solicitud de invocación. Use la dirección URL que reciba para buscar en el servicio y crear una respuesta de tarjeta. Si responde con más de una tarjeta, solo se usará la primera.

Se admiten los siguientes tipos de tarjeta:

Consulte ¿Qué son las tarjetas para obtener información general).

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);
}