Развертывание ссылки

Важно!

Примеры кода в этом разделе основаны на 4.6 и более поздних версиях SDK Bot Framework. Если вы ищете документацию для более ранних версий, см. раздел Расширения обмена сообщениями — раздел v3 SDK в папке Ресурсы документации.

В этом документе вы можете узнать, как добавить разгрузку ссылки в манифест приложения с помощью студии Приложения и вручную. При разгрузки ссылок ваше приложение может зарегистрироваться для получения активности при вклеив URL-адреса с определенным доменом в область invoke составить сообщение. Полный URL-адрес, который был вклеен в область составить сообщение, и вы можете ответить карточкой, которую пользователь может разкрутить, предоставив дополнительные сведения invoke или действия. Это работает по аналогии с командой поиска с URL-адресом, который служит термином поиска.

Примечание

  • В настоящее время разгрузка ссылок не поддерживается в мобильных клиентах.
  • Результат разгрузки ссылки кэшется в течение 30 минут.

Расширение Azure DevOps сообщений использует разгрузку ссылок, чтобы искать URL-адреса, вклеив их в область составить сообщение, указывав на рабочий элемент. На следующем изображении пользователь вклеил URL-адрес для элемента работы в Azure DevOps, который расширение обмена сообщениями решило в карточку:

Пример разгрузки ссылок

Чтобы добавить разгрузку ссылок в манифест приложения, добавьте новый массив в раздел messageHandlers composeExtensions манифеста приложения JSON. Массив можно добавлять либо с помощью App Studio, либо вручную. Списки домена могут включать, например, поддиайки. *.example.com Это соответствует ровно одному сегменту домена; если вам нужно a.b.example.com соответствовать, то используйте *.*.example.com .

Примечание

Не добавляйте домены, которые не находятся под вашим контролем, напрямую или с помощью поддиайтов. Например, yourapp.onmicrosoft.com допустимо, *.onmicrosoft.com но не является допустимым. Кроме того, домены верхнего уровня запрещены. Например, *.com *.org .

  1. Откройте App Studio Microsoft Teams клиента и выберите вкладку Редактор Манифеста.

  2. Загрузите манифест приложения.

  3. На странице Расширение обмена сообщениями добавьте домен, который необходимо искать в разделе Обработчики сообщений. В следующем изображении объясняется процесс:

    Раздел обработчики сообщений в App Studio

Чтобы расширение обмена сообщениями взаимодействовало со ссылками, сначала необходимо добавить массив messageHandlers в манифест приложения. В следующем примере объясняется, как вручную добавлять разгрузку ссылок:

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

Полный пример манифеста см. в справке об манифесте.

После добавления домена в манифест приложения необходимо обновить код веб-службы для обработки запроса на вызов. Используйте полученный URL-адрес для поиска службы и создания ответа на карточку. Если вы отвечаете более чем одной картой, используется только первый ответ.

Поддерживаются следующие типы карт:

Дополнительные сведения см. в ссылке типа Action.

Пример

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

См. также