Acciones de tarjeta
Las tarjetas que usan los bots y las extensiones de mensajería en Teams admiten los siguientes tipos de actividad CardAction
:
Nota:
Las CardAction
acciones difieren de potentialActions
para las tarjetas de conector para Grupos de Microsoft 365 cuando se usan desde conectores.
Tipo | Acción |
---|---|
openUrl |
Abre una dirección URL en el explorador predeterminado. |
messageBack |
Envía un mensaje y una carga al bot desde el usuario que seleccionó el botón o tocó la tarjeta. Envía un mensaje independiente a la secuencia de chat. |
imBack |
Envía un mensaje al bot desde el usuario que seleccionó el botón o tocó la tarjeta. Este mensaje del usuario al bot es visible para todos los participantes de la conversación. |
invoke |
Envía un mensaje y una carga al bot desde el usuario que seleccionó el botón o tocó la tarjeta. Este mensaje no está visible. |
signin |
Inicia el flujo de OAuth, lo que permite a los bots conectarse con servicios seguros. |
Nota:
- Teams no admite
CardAction
tipos no enumerados en la tabla anterior. - Teams no admite la
potentialActions
propiedad. - Las acciones de tarjeta son diferentes a las acciones sugeridas en Bot Framework o Azure Bot Service.
- Si usa una acción de tarjeta como parte de una extensión de mensajería, las acciones no funcionarán hasta que la tarjeta se envíe al canal. Las acciones no funcionan mientras la tarjeta está en el cuadro de redacción del mensaje.
Tipo de acción, openURL
openUrl
El tipo de acción especifica una dirección URL para iniciar en el explorador predeterminado.
Nota:
- El bot no recibe ningún aviso sobre qué botón se seleccionó.
- Los nombres de máquina con números no se admiten en la dirección URL.
Con openUrl
, puede crear una acción con las siguientes propiedades:
Propiedad | Descripción |
---|---|
title |
Aparece como la etiqueta del botón. |
value |
Este campo debe contener una dirección URL completa y con el formato correcto. |
El siguiente código muestra un ejemplo de openUrl
un tipo de acción en JSON:
{
"type": "openUrl",
"title": "Tabs in Teams",
"value": "https://msdn.microsoft.com/microsoft-teams/tabs"
}
Tipo de acción messageBack
Con messageBack
, puede crear una acción totalmente personalizada con las siguientes propiedades:
Propiedad | Descripción |
---|---|
title |
Aparece como la etiqueta del botón. |
displayText |
Opcional. Lo usa el usuario en la secuencia de chat cuando se realiza la acción. Este texto no se envía al bot. |
value |
Se envía al bot cuando se realiza la acción. Puede codificar el contexto para la acción, tales como identificadores únicos o un objeto JSON. |
text |
Se envía al bot cuando se realiza la acción. Use esta propiedad para simplificar el desarrollo de los bots. Su código puede comprobar una sola propiedad de nivel superior para distribuir la lógica del bot. |
La flexibilidad de messageBack
significa que el código no puede dejar un mensaje de usuario visible en el historial simplemente sin usar displayText
.
El siguiente código muestra un ejemplo de messageBack
un tipo de acción en JSON:
{
"buttons": [
{
"type": "messageBack",
"title": "My MessageBack button",
"displayText": "I clicked this button",
"text": "User just clicked the MessageBack button",
"value": "{\"property\": \"propertyValue\" }"
}
]
}
La propiedad value
puede ser una cadena JSON serializada o un objeto JSON.
Ejemplo de un mensaje entrante
replyToId
contiene el id. del mensaje del que proviene la acción de la tarjeta. Úselo si desea actualizar el mensaje.
El siguiente código muestra un ejemplo de un mensaje entrante:
{
"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",
}
Tipo de acción imBack
La acción imBack
desencadena un mensaje de devolución su bot, como si el usuario lo hubiera escrito en un mensaje de chat normal. Sul usuario y todos los demás usuarios de un canal pueden ver el botón de respuesta.
Con imBack
, puede crear una acción con las siguientes propiedades:
Propiedad | Descripción |
---|---|
title |
Aparece como la etiqueta del botón. |
value |
Este campo debe contener la cadena de texto que se usa en el chat y, por tanto, se envía al bot. Este es el texto del mensaje que se procesa en su bot para realizar la lógica deseada. |
Nota:
El campo value
es una cadena simple. No se admite el formato ni los caracteres ocultos.
El siguiente código muestra un ejemplo de imBack
un tipo de acción en JSON:
{
"type": "imBack",
"title": "More",
"value": "Show me more"
}
Tipo de acción invoke
La acción invoke
se usa para invocar módulos de tareas.
La acción invoke
contiene tres propiedades, type
, title
y value
.
Con invoke
, puede crear una acción con las siguientes propiedades:
Propiedad | Descripción |
---|---|
title |
Aparece como la etiqueta del botón. |
value |
Esta propiedad puede contener una cadena, un objeto JSON con cadenas o un objeto JSON. |
El siguiente código muestra un ejemplo de invoke
un tipo de acción en JSON:
{
"type": "invoke",
"title": "Option 1",
"value": {
"option": "opt1"
}
}
Cuando un usuario selecciona el botón, su bot recibe el objeto value
con información adicional.
Nota:
El tipo de actividad es invoke
en lugar de message
que es activity.Type == "invoke"
.
Ejemplo de mensaje de invocación entrante
La propiedad del nível superirorreplyToId
contiene el id. del mensaje del cual proviene la acción de la tarjeta. Úselo si desea actualizar el mensaje.
El siguiente código muestra un ejemplo de un mensaje de invocación entrante:
{
"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"
}
Inicio de sesión de tipo de acción
signin
El tipo de acción inicia un flujo de OAuth que permite a los bots conectarse con servicios seguros. Para más información, consulte flujos de autenticación en bots.
Teams también admiteacciones de tarjetas adaptables que solo usan las tarjetas adaptables.
El siguiente código muestra un ejemplo de signin
un tipo de acción en JSON:
{
"type": "signin",
"title": "Click me for signin",
"value": "https://signin.com"
}
Acciones de tarjetas adaptables
Las arjetas adaptables admiten cuatro tipos de acción:
También puede modificar la carga Action.Submit
de la tarjeta adaptable para admitir acciones de Bot Framework existentes mediante unamsteams
propiedad en eldata
objeto de Action.Submit
. En la sección siguiente se proporcionan detalles sobre cómo usar las acciones existentes de Bot Framework con tarjetas adaptables.
Nota:
Agregar
msteams
a los datos con una acción Bot Framework no funciona con un módulo de tareas de una tarjeta adaptable.No se admite principal ni desctuctivo
ActionStyle
en Microsoft Teams.
Tarjetas adaptables con la acción messageBack
Para incluir una acción messageBack
con una tarjeta adaptable, incluya los detalles siguientes en elmsteams
objeto :
Nota:
Puede incluir propiedades ocultas adicionales en el objeto data
, si es necesario.
Propiedad | Descripción |
---|---|
type |
Establecer amessageBack . |
displayText |
Opcional. Lo usa el usuario en la secuencia de chat cuando se realiza la acción. Este texto no se envía al bot. |
value |
Se envía al bot cuando se realiza la acción. Puede codificar el contexto para la acción, tales como identificadores únicos o un objeto JSON. |
text |
Se envía al bot cuando se realiza la acción. Use esta propiedad para simplificar el desarrollo de los bots. Su código puede comprobar una sola propiedad de nivel superior para distribuir la lógica del bot. |
El siguiente código muestra un ejemplo de tarjetas adaptables messageBack
con la acción:
{
"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\"}"
}
}
}
Tarjetas adaptables con la acción imBack
Para incluir una acción imBack
con una tarjeta adaptable, incluya los detalles siguientes en elmsteams
objeto :
Nota:
Puede incluir propiedades ocultas adicionales en el objeto data
, si es necesario.
Propiedad | Descripción |
---|---|
type |
Establecer aimBack . |
value |
Cadena que debe repetirse en el chat. |
El siguiente código muestra un ejemplo de tarjetas adaptables imBack
con la acción:
{
"type": "Action.Submit",
"title": "Click me for imBack",
"data": {
"msteams": {
"type": "imBack",
"value": "Text to reply in chat"
}
}
}
Tarjetas adaptables con acción de inicio de sesión
Para incluir una acción signin
con una tarjeta adaptable, incluya los detalles siguientes en elmsteams
objeto :
Nota:
Puede incluir propiedades ocultas adicionales en el objeto data
, si es necesario.
Propiedad | Descripción |
---|---|
type |
Establecer asignin . |
value |
Establézcala en la dirección URL a la que desea redirigir. |
El siguiente código muestra un ejemplo de tarjetas adaptables signin
con la acción:
{
"type": "Action.Submit",
"title": "Click me for signin",
"data": {
"msteams": {
"type": "signin",
"value": "https://signin.com"
}
}
}
Tarjetas adaptables con la acción invoke
Para incluir una acción invoke
con una tarjeta adaptable, incluya los detalles siguientes en elmsteams
objeto :
Nota:
Puede incluir propiedades ocultas adicionales en el objeto data
, si es necesario.
Propiedad | Descripción |
---|---|
type |
Establecer atask/fetch . |
data |
Establezca el valor. |
El siguiente código muestra un ejemplo de tarjetas adaptables invoke
con la acción:
{
"type": "Action.Submit",
"title": "submit",
"data": {
"msteams": {
"type": "task/fetch"
}
}
}
El siguiente código muestra un ejemplo de tarjetas adaptables invoke
con la acción con datos de carga adicionales:
{
"type": "Action.Submit",
"title": "submit"
"data": {
"msteams": {
"type": "task/fetch"
},
"Value1": "some value"
}
}
Ejemplos de código
S.No. | Tarjeta | Descripción | .NET | Node.js | Python | Java |
---|---|---|---|---|---|---|
1 | Acciones de tarjeta adaptable | En este ejemplo se muestran las distintas acciones admitidas en las tarjetas adaptables. | View | Ver | ND | ND |
2 | Uso de tarjetas | Presenta todos los tipos de tarjetas, como miniaturas, audio, medios, etc. Se basa en el bot de bienvenida de usuario y mensajes múltiples mediante la presentación de una tarjeta con botones en el mensaje de bienvenida que enrutan al cuadro de diálogo adecuado. | View | View | View | Ver |
3 | Tarjetas adaptables | Muestra cómo el cuadro de diálogo de varios turnos puede usar una tarjeta para obtener la entrada del usuario por nombre y edad. | View | View | View | Ver |
Nota:
Los elementos multimedia no se admiten para la tarjeta adaptable en Teams