Действия с картойCard actions

Карты, используемые Боты и расширениями обмена сообщениями в Teams, поддерживают следующие типы действий ( CardAction ).Cards used by bots and messaging extensions in Teams support the following activity (CardAction) types. Обратите внимание, что эти действия отличаются potentialActions для соединителей карт Office 365 при их использовании от соединителей.Note that these actions differ from potentialActions for Office 365 Connector cards when used from Connectors.

TypeType ActionAction
openUrl Открывает URL-адрес в браузере по умолчанию.Opens a URL in the default browser.
messageBack Отправляет сообщение и полезные данные в Bot (от пользователя, который нанажали кнопку или выделяют карточку) и отправляет отдельное сообщение в поток чата.Sends a message and payload to the bot (from the user who clicked the button or tapped the card) and sends a separate message to the chat stream.
imBack Отправляет сообщение на Bot (от пользователя, который нанажали кнопку или нанажали карточку).Sends a message to the bot (from the user who clicked the button or tapped the card). Это сообщение (от пользователя к Bot) видимо всем участникам беседы.This message (from user to bot) is visible to all conversation participants.
invoke Отправляет сообщение и полезные данные в Bot (от пользователя, который нанажали кнопку или нанажали карточку).Sends a message and payload to the bot (from the user who clicked the button or tapped the card). Это сообщение не отображается.This message is not visible.
signin Инициирует процесс OAuth, позволяя Боты подключаться к защищенным службам.Initiates OAuth flow, allowing bots to connect with secure services.

Примечание

  • Teams не поддерживает CardAction типы, не указанные в предыдущей таблице.Teams does not support CardAction types not listed in the preceding table.
  • Teams не поддерживает это potentialActions свойство.Teams does not support the potentialActions property.
  • Действия с картой отличаются от предлагаемых действий в службе Bot Framework/Azure Bot.Card actions are different than suggested actions in Bot Framework/Azure Bot Service. Предлагаемые действия не поддерживаются в Microsoft teams: Если вы хотите, чтобы кнопки отображались в сообщении ленты Teams, используйте карточку.Suggested actions are not supported in Microsoft Teams: if you want buttons to appear on a Teams bot message, use a card.
  • Если вы используете действие карточки в составе расширения для обмена сообщениями, действия не будут работать до тех пор, пока карточка не будет отправлена в канал (они не будут работать, пока карточка находится в окне сообщения создания).If you're using a card action as part of a messaging extension, the actions will be not work until the card is submitted to the channel (they will not work while the card is in the compose message box).

Teams также поддерживает действия со адаптивными карточками, которые используются только адаптивными картами.Teams also supports Adaptive Cards actions, which are only used by Adaptive Cards. Эти действия перечислены в отдельном разделе в конце этой ссылки.These actions are listed in their own section at the end of this reference.

openUrlopenUrl

Этот тип действия задает URL-адрес, который будет запускаться в браузере по умолчанию.This action type specifies a URL to launch in the default browser. Обратите внимание, что для ленты не отображается уведомление о нажатии кнопки.Note that your bot does not receive any notice on which button was clicked.

valueПоле должно содержать полный и правильно сформированный URL-адрес.The value field must contain a full and properly formed URL.

{
    "type": "openUrl",
    "title": "Tabs in Teams",
    "value": "https://msdn.microsoft.com/microsoft-teams/tabs"
}

мессажебаккmessageBack

С помощью messageBack можно создать полностью настраиваемое действие со следующими свойствами:With messageBack, you can create a fully customized action with the following properties:

СвойствоProperty ОписаниеDescription
title Отображается в виде подписи кнопки.Appears as the button label.
displayText Необязательный атрибут.Optional. Подается пользователю в поток чата при выполнении действия.Echoed by the user into the chat stream when the action is performed. Этот текст не отправляется в робот.This text is not sent to your bot.
value Отправляется на ваш робот при выполнении действия.Sent to your bot when the action is performed. Вы можете закодировать контекст для действия, например уникальные идентификаторы или объект JSON.You can encode context for the action, such as unique identifiers or a JSON object.
text Отправляется на ваш робот при выполнении действия.Sent to your bot when the action is performed. Используйте это свойство для упрощения разработки в Bot: ваш код может проверять одно свойство верхнего уровня для обработки логики Bot.Use this property to simplify bot development: Your code can check a single top-level property to dispatch bot logic.

Гибкость заключается в messageBack том, что ваш код может не оставлять видимое пользовательское сообщение в истории простым, не используя displayText .The flexibility of messageBack means that your code can choose not to leave a visible user message in the history simply by not using displayText.

{
  "buttons": [
    {
    "type": "messageBack",
    "title": "My MessageBack button",
    "displayText": "I clicked this button",
    "text": "User just clicked the MessageBack button",
    "value": "{\"property\": \"propertyValue\" }"
    }
  ]
}

valueСвойство может быть либо сериализованной строкой JSON, либо объектом JSON.The value property can be either a serialized JSON string or a JSON object.

Пример входящего сообщенияInbound message example

replyToId содержит идентификатор сообщения, из которого поступило действие карточки.replyToId contains the ID of the message that the card action came from. Используйте его, если хотите обновить сообщение.Use it if you want to update the message.

{
   "text":"User just clicked the MessageBack button",
   "value":{
      "property":"propertyValue"
   },
   "type":"message",
   "timestamp":"2017-06-22T22:38:47.407Z",
   "id":"f:5261769396935243054",
   "channelId":"msteams",
   "serviceUrl":"https://smba.trafficmanager.net/amer-client-ss.msg/",
   "from":{
      "id":"29:102jd210jd010icsoaeclaejcoa9ue09u",
      "name":"John Smith"
   },
   "conversation":{
      "id":"19:malejcou081i20ojmlcau0@thread.skype;messageid=1498171086622"
   },
   "recipient":{
      "id":"28:76096e45-119f-4736-859c-6dfff54395f7",
      "name":"MyBot"
   },
   "entities":[
      {
        "locale": "en-US",
        "country": "US",
        "platform": "Windows",
        "timezone": "America/Los_Angeles",
        "type": "clientInfo" 
      }
   ],
   "channelData":{
      "channel":{
         "id":"19:malejcou081i20ojmlcau0@thread.skype"
      },
      "team":{
         "id":"19:12d021jdoijsaeoaue0u@thread.skype"
      },
      "tenant":{
         "id":"bec8e231-67ad-484e-87f4-3e5438390a77"
      }
   },
        "replyToId": "1575667808184",
}

Обратное воспроизведениеimBack

Это действие вызывает возврат сообщения для ленты, как если бы пользователь ввел его в обычном сообщении чата.This action triggers a return message to your bot, as if the user typed it in a normal chat message. Пользователь и все остальные пользователи, если они находятся в канале, увидят этот ответ на эту кнопку.Your user, and all other users if in a channel, will see that button response.

valueПоле должно содержать текстовую строку, которая помещается в чат и, следовательно, отправляется обратно в Bot.The value field should contain the text string echoed in the chat and therefore sent back to the bot. Это текст сообщения, которое будет обрабатываться в Bot, чтобы выполнить нужную логику.This is the message text you will process in your bot to perform the desired logic. Note: это поле представляет собой простую строку — поддержка форматирования и скрытых символов отсутствует.Note: this field is a simple string - there is no support for formatting or hidden characters.

{
    "type": "imBack",
    "title": "More",
    "value": "Show me more"
}

методаinvoke

invokeДействие используется для вызова модулей задач.The invoke action is used for invoking task modules.

invokeДействие содержит три свойства: type , title и value .The invoke action contains three properties: type, title, and value. valueСвойство может содержать строку, объект ПРЕОБРАЗОВАННОГО JSON или объект JSON.The value property can contain a string, a stringified JSON object, or a JSON object.

{
    "type": "invoke",
    "title": "Option 1",
    "value": {
        "option": "opt1"
    }
}

Когда пользователь нажимает кнопку, ваш объект Bot будет получать value объект с дополнительными сведениями.When a user clicks the button, your bot will receive the value object with some additional info. Обратите внимание, что вместо него будет использоваться тип действия invoke message ( activity.Type == "invoke" ).Please note that the activity type will be invoke instead of message (activity.Type == "invoke").

Пример: вызов определения кнопки (.NET)Example: Invoke button definition (.NET)

var button = new CardAction()
{
    Title = "Option 1",
    Type = "invoke",
    Value = "{\"option\": \"opt1\"}"
};

Пример: сообщение входящего вызоваExample: Incoming invoke message

Свойство верхнего уровня replyToId содержит идентификатор сообщения, из которого поступило действие карточки.The top-level replyToId property contains the ID of the message that the card action came from. Используйте его, если хотите обновить сообщение.Use it if you want to update the message.

{
    "type": "invoke",
    "value": {
        "option": "opt1"
    },
    "timestamp": "2017-02-10T04:11:19.614Z",
    "localTimestamp": "2017-02-09T21:11:19.614-07:00",
    "id": "f:6894910862892785420",
    "channelId": "msteams",
    "serviceUrl": "https://smba.trafficmanager.net/amer-client-ss.msg/",
    "from": {
        "id": "29:1Eniglq0-uVL83xNB9GU6w_G5a4SZF0gcJLprZzhtEbel21G_5h-
    NgoprRw45mP0AXUIZVeqrsIHSYV4ntgfVJQ",
        "name": "John Doe"
    },
    "conversation": {
        "id": "19:97b1ec61-45bf-453c-9059-6e8984e0cef4_8d88f59b-ae61-4300-bec0-caace7d28446@unq.gbl.spaces"
    },
    "recipient": {
        "id": "28:8d88f59b-ae61-4300-bec0-caace7d28446",
        "name": "MyBot"
    },
    "entities": [
        {
            "locale": "en-US",
            "country": "US",
            "platform": "Web",
            "type": "clientInfo"
        }
    ],
    "channelData": {
        "channel": {
            "id": "19:dc5ba12695be4eb7bf457cad6b4709eb@thread.skype"
        },
        "team": {
            "id": "19:712c61d0ef384e5fa681ba90ca943398@thread.skype"
        },
        "tenant": {
            "id": "72f988bf-86f1-41af-91ab-2d7cd011db47"
        }
    },
    "replyToId": "1575667808184"
}

SignInsignin

Инициирует процесс OAuth, позволяя Боты подключаться к защищенным службам, как описано ниже. процесс проверки подлинности в Боты.Initiates an OAuth flow, allowing bots to connect with secure services, as described in more detail here: Authentication flow in bots.

Действия с адаптивными карточкамиAdaptive Cards actions

Адаптивные карты поддерживают три типа действий:Adaptive Cards support three action types:

В дополнение к приведенным выше действиям можно изменить данные адаптивной карточки, Action.Submit чтобы поддерживать существующие действия с помощью ленты с помощью msteams свойства в data объекте Action.Submit .In addition to the actions mentioned above, you can modify the Adaptive Card Action.Submit payload to support existing Bot Framework actions using a msteams property in the data object of Action.Submit. В следующих разделах подробно описано, как использовать существующие действия с использованием ленты с адаптивными картами.The below sections detail how to use existing Bot Framework actions with Adaptive Cards.

Примечание

Добавление msteams к данным с действием Bot Framework не работает с модулем задачи адаптивной карточки.Adding msteams to data, with a Bot Framework action, does not work with an Adaptive Card task module.

Адаптивные карты с действием МессажебаккAdaptive Cards with messageBack action

Чтобы включить messageBack действие с помощью адаптивной карточки, добавьте следующие сведения в msteams объект.To include a messageBack action with an Adaptive Card include the following details in the msteams object. Обратите внимание, что при необходимости вы можете добавить в объект дополнительные скрытые свойства data .Note that you can include additional hidden properties in the data object if needed.

СвойствоProperty ОписаниеDescription
type Значение messageBackSet to messageBack
displayText Необязательный атрибут.Optional. Подается пользователю в поток чата при выполнении действия.Echoed by the user into the chat stream when the action is performed. Этот текст не отправляется в робот.This text is not sent to your bot.
value Отправляется на ваш робот при выполнении действия.Sent to your bot when the action is performed. Вы можете закодировать контекст для действия, например уникальные идентификаторы или объект JSON.You can encode context for the action, such as unique identifiers or a JSON object.
text Отправляется на ваш робот при выполнении действия.Sent to your bot when the action is performed. Используйте это свойство для упрощения разработки в Bot: ваш код может проверять одно свойство верхнего уровня для обработки логики Bot.Use this property to simplify bot development: Your code can check a single top-level property to dispatch bot logic.

ПримерExample

{
  "type": "Action.Submit",
  "title": "Click me for messageBack",
  "data": {
    "msteams": {
        "type": "messageBack",
        "displayText": "I clicked this button",
        "text": "text to bots",
        "value": "{\"bfKey\": \"bfVal\", \"conflictKey\": \"from value\"}"
    }
  }
}

Адаптивные карты с действием при обратной передачеAdaptive Cards with imBack action

Чтобы включить imBack действие с помощью адаптивной карточки, добавьте следующие сведения в msteams объект.To include a imBack action with an Adaptive Card include the following details in the msteams object. Обратите внимание, что при необходимости вы можете добавить в объект дополнительные скрытые свойства data .Note that you can include additional hidden properties in the data object if needed.

СвойствоProperty ОписаниеDescription
type Значение imBackSet to imBack
value Строка, которая должна быть возвращена в чатеString that needs to be echoed back in the chat

ПримерExample

{
  "type": "Action.Submit",
  "title": "Click me for imBack",
  "data": {
    "msteams": {
        "type": "imBack",
        "value": "Text to reply in chat"
    }
  }
}

Адаптивные карточки с действием SignInAdaptive Cards with signin action

Чтобы включить signin действие с помощью адаптивной карточки, добавьте следующие сведения в msteams объект.To include a signin action with an Adaptive Card include the following details in the msteams object. Обратите внимание, что при необходимости вы можете добавить в объект дополнительные скрытые свойства data .Note that you can include additional hidden properties in the data object if needed.

СвойствоProperty ОписаниеDescription
type Значение signinSet to signin
value Укажите URL-адрес, на который требуется перенаправитьSet to the URL that you want to redirect to

ПримерExample

{
  "type": "Action.Submit",
  "title": "Click me for signin",
  "data": {
    "msteams": {
        "type": "signin",
        "value": "https://signin.com"
    }
  }
}