Compartir vía


Campos de identificador en Bot Framework

SE APLICA A: SDK v4

En esta guía se describen las características de los campos de identificador en Bot Framework.

Id. de canal

Cada canal de Bot Framework se identifica mediante un identificador único.

Ejemplo: "channelId": "slack"

Los identificadores de canal sirven como espacios de nombres para otros identificadores. Las llamadas en tiempo de ejecución en el protocolo Bot Framework deben tener lugar en el contexto de un canal; el canal proporciona significado a los identificadores de conversación y cuenta que se usan al comunicarse.

Por convención, todos los identificadores de canal están en minúsculas. Los canales garantizan que los identificadores de canal que emiten tengan mayúsculas y minúsculas coherentes y, por tanto, los bots pueden usar comparaciones ordinales para establecer la equivalencia.

Reglas para identificadores de canal

  • Los identificadores de canal distinguen mayúsculas de minúsculas.

Identificador de bot

Cada bot que se ha registrado con Azure AI Bot Service tiene un identificador de bot.

Ejemplo: FooBot

Un identificador de bot representa el registro de un bot con Azure AI Bot Service en línea. Este registro está asociado a un punto de conexión de webhook HTTP y a registros con canales.

Azure AI Bot Service garantiza la unicidad de los identificadores de bot. Azure Portal realiza una comprobación de unicidad que no distingue mayúsculas de minúsculas (lo que significa que las variaciones de mayúsculas y minúsculas del identificador de bot se tratan como un identificador único), aunque esta es una característica de Azure Portal y no necesariamente el propio identificador del bot.

Reglas para identificadores de bot

  • Los identificadores de bot son únicos (no distinguen mayúsculas de minúsculas) dentro de Bot Framework.

Id. de aplicación

Cada bot que se ha registrado con Azure AI Bot Service tiene un identificador de aplicación.

Nota

Anteriormente, las aplicaciones se denominaban normalmente "aplicaciones de MSA" o "aplicaciones de MSA/AAD". Ahora las aplicaciones se conocen más comúnmente como "aplicaciones", pero algunos elementos de protocolo pueden hacer referencia a las aplicaciones como "Aplicaciones de MSA" en perpetuidad.

Ejemplo: "msaAppId": "00001111-aaaa-2222-bbbb-3333cccc4444"

Una aplicación representa un registro con el portal de aplicaciones del equipo de identidad y actúa como mecanismo de identidad de servicio a servicio dentro del protocolo de tiempo de ejecución de Bot Framework. Las aplicaciones pueden tener otras asociaciones que no son bots, como sitios web y aplicaciones móviles o de escritorio.

Cada bot registrado tiene exactamente una aplicación. Aunque no es posible que un propietario del bot cambie de forma independiente qué aplicación está asociada a su bot, el equipo de Bot Framework puede hacerlo en algunos casos excepcionales.

Los bots y los canales pueden usar identificadores de aplicación para identificar de forma única un bot registrado.

Se garantiza que los identificadores de aplicación son GUID. Los identificadores de aplicación deben compararse sin distinción entre mayúsculas y minúsculas.

Reglas para identificadores de aplicación

  • Los identificadores de aplicación son únicos (comparación de GUID) dentro de la plataforma de aplicaciones de Microsoft.
  • Cada bot tiene exactamente una aplicación correspondiente.
  • El cambio de la aplicación a la que está asociado un bot requiere la ayuda del equipo de Bot Framework.

Cuenta de canal

Cada bot y usuario tiene una cuenta dentro de cada canal. La cuenta contiene un identificador (id) y otros datos informativos no estructurales del bot, como un nombre opcional.

Ejemplo: "from": { "id": "john.doe@contoso.com", "name": "John Doe" }

Esta cuenta describe la dirección dentro del canal donde se pueden enviar y recibir mensajes. En algunos casos, estos registros existen dentro de un único servicio, como Facebook. En otros, se registran en muchos sistemas (direcciones de correo electrónico, números de teléfono). En canales más anónimos, como Chat en web, el registro puede ser efímero.

Las cuentas de canal están anidadas dentro de los canales. Una cuenta de Facebook, por ejemplo, es simplemente un número. Este número puede tener un significado diferente en otros canales y no tiene significado fuera de todos los canales.

La relación entre las cuentas de canal y los usuarios (personas reales) depende de las convenciones asociadas a cada canal. Por ejemplo, un número sms normalmente hace referencia a una persona, pero el número se puede transferir a otra persona. Por el contrario, una cuenta de Facebook normalmente hace referencia a una persona a perpetuidad, aunque no es raro que dos personas compartan una cuenta de Facebook.

En la mayoría de los canales, es adecuado pensar en una cuenta de canal como un tipo de buzón en el que se pueden entregar mensajes. Es habitual que la mayoría de los canales permitan que varias direcciones se asignen a un único buzón. Por ejemplo, "jdoe@contoso.com" y "john.doe@service.contoso.com" pueden resolverse en la misma bandeja de entrada. Algunos canales van más allá y modifican la dirección de la cuenta en función del bot al que accede. Por ejemplo, Facebook modifica los identificadores de usuario para que cada bot tenga una dirección diferente para enviar y recibir mensajes.

Aunque en algunos casos es posible establecer la equivalencia entre direcciones, establecer la equivalencia entre buzones y equivalencia entre las personas requiere conocimiento de las convenciones dentro del canal y, en muchos casos, no es posible.

Se informa a un bot de su dirección de cuenta de canal a través del campo recipient en las actividades enviadas al bot.

Reglas para cuentas de canal

  • Las cuentas de canal solo tienen significado dentro de su canal asociado.
  • Es posible que más de un identificador se resuelva en la misma cuenta.
  • La comparación ordinal se puede usar para establecer que dos identificadores son los mismos.
  • Por lo general, no hay ninguna comparación que se pueda usar para identificar si dos identificadores diferentes se resuelven en la misma cuenta, bot o persona.
  • La estabilidad de las asociaciones entre identificadores, cuentas, buzones y personas dependen del canal.

Identificador de conversación

Los mensajes se envían y reciben en el contexto de una conversación, que es identificable por identificador.

Ejemplo: "conversation": { "id": "1234" }

Una conversación contiene un intercambio de mensajes y otras actividades. Cada conversación tiene cero o más actividades, y cada actividad aparece exactamente en una conversación. Las conversaciones pueden ser perpetuas o pueden tener inicios y finales distintos. El proceso de creación, modificación o finalización de una conversación se produce dentro del canal (una conversación solo existe mientras el canal lo conoce) y el canal establece las características de estos procesos mediante el canal.

Los usuarios y bots envían las actividades dentro de una conversación. La definición para la que los usuarios "participan" en una conversación varía según el canal y, en teoría, pueden incluir usuarios presentes, usuarios que alguna vez han recibido un mensaje, usuarios que enviaron un mensaje.

Varios canales, como SMS y, posiblemente, otros, tienen la peculiaridad de que el identificador de conversación asignado a una conversación 1:1 es el identificador de cuenta del canal remoto. Esta peculiaridad tiene dos efectos secundarios:

  1. El identificador de conversación es subjetiva, en función de quién lo está viendo. Si los participantes A y B están hablando, el participante A ve el identificador de conversación para que sea "B" y el participante B ve el identificador de conversación como "A".
  2. Si el bot tiene varias cuentas de canal dentro de este canal (por ejemplo, si el bot tiene dos números SMS), el identificador de conversación no es suficiente para identificar de forma única la conversación dentro del campo de vista del bot.

Por lo tanto, un identificador de conversación no identifica necesariamente de forma única una sola conversación dentro de un canal incluso para un único bot.

Reglas para identificadores de conversación

  • Las conversaciones solo tienen significado dentro de su canal asociado.
  • Es posible que más de un identificador se resuelva en la misma conversación.
  • La igualdad ordinal no establece necesariamente que dos identificadores de conversación sean la misma conversación, aunque en la mayoría de los casos sí lo hace.

Id. de actividad

Las actividades se envían y reciben en el protocolo Bot Framework, y a veces se identifican.

Ejemplo: "id": "5678"

Los identificadores de actividad son opcionales y se emplean mediante canales para proporcionar al bot una manera de hacer referencia al identificador en las llamadas API posteriores, si están disponibles:

  • Responder a una actividad determinada
  • Consulta de la lista de participantes en el nivel de actividad

Dado que no se han establecido más casos de uso, no hay reglas adicionales para el tratamiento de identificadores de actividad.