D Métodos auxiliares para el SDK del componente personalizado

Función Uso
conversation.payload() Recupera la carga útil del mensaje de usuario actual. La carga útil contiene el texto del mensaje y otros datos, como el identificador de usuario.
conversation.text() Accede a la cadena de texto.
conversation.attachment() Accede a un mensaje de anexo.
conversation.location() Accede a un mensaje de ubicación.
conversation.postback() Accede a un mensaje de devolución.
conversation.transition(“action”) y conversation.transition() Dirige al motor de diálogo al siguiente estado del flujo de diálogo. El componente personalizado puede influir en la navegación devolviendo una cadena de acción que se ha asignado al estado en el flujo de diálogo.
  • Navegación controlada por componentes (conversation.transition(“action”)): para establecer el estado del destino, transfiera un argumento de cadena que coincida con una de las cadenas supportedActions de la función metatdata del módulo de componente, como nameFound y nameNotFound en el siguiente fragmento:
    metadata: () => ({
        "name": "helloWorld",
        "properties": {
          "properties": {
            "name": {
            "type": "string",
            "required": false"
          }
        },
        "supportedActions": ["nameFound", "nameNotFound"]
      }),      
    
  • Navegación controlada por el flujo de diálogo (conversation.transition()): puede llamar a esta función sin argumentos cuando el módulo de componente no tiene ninguna definición supportedActions (y, por lo tanto, no hay argumentos que transferir). En este caso, es la definición de flujo de diálogo la que define la transición, no el componente. Por ejemplo, según la definición del flujo de diálogo, el motor de diálogo puede pasar al siguiente estado del flujo después de ejecutar el método transition (transitions: {}), o bien pasar a un estado específico:
    transitions:
      next: "newState"

    El flujo de diálogo también determinará la transición cuando el módulo de componente tenga una definición supportedActions, pero la función propiamente dicha no tenga ningún argumento.

conversation.channelType() Permite determinar el canal de mensajería.
conversation.keepTurn(boolean) Permite al bot mantener el control de la conversación. Básicamente, keepTurn decide quién proporciona una entrada o una respuesta: el bot o el usuario. Por lo tanto, antes de llamar a done, puede indicar quién va a continuación llamando a conversation.keepTurn(true) o convesationkeepTurn(false).
  • conversation.keepTurn(true): establézcala en true para permitir al bot controlar la conversación. Básicamente, el bot (a través del componente) afirma que mantiene el turno de palabra. Utilice este valor cuando el componente no requiera la entrada del usuario o cuando necesite enviar varias respuestas de forma rápida y suprimir la entrada del usuario.

  • conversation.keepTurn(false): establézcala en false (valor por defecto) para permitir que el usuario responda. Básicamente, este valor devuelve el control al usuario hasta la siguiente respuesta del componente. Permite una conversación normal entre dos interlocutores.

conversation.reply({text: "..."}) Devuelve la respuesta del cliente de mensajería. Esta respuesta puede ser un mensaje de texto simple o una respuesta más compleja con una interfaz de usuario enriquecida que utiliza las funciones de la clase MessageModel en el SDK del componente personalizado. Esta función le permite crear respuestas más complejas, como un carrusel de desplazamiento en Facebook. Para este tipo de respuesta, necesita estructurar la carga útil de JSON correctamente.

Debe llamar a done() para enviar la respuesta, independientemente del número de llamadas realizadas a conversation.reply.

conversation.properties() Proporciona acceso a las propiedades de entrada del componente (conversation.properties().accountType).
conversation.error Indica que se ha producido un error durante el procesamiento.
conversation.botId() Devuelve el ID del bot que ha enviado la solicitud.
conversation.platformVersion() Devuelve la versión de la plataforma de mensajes (como Facebook 1.0).
conversation.text() Proporciona acceso al mensaje de texto de NLP que disparó la llamada de la intención y el componente.
conversation.variable(“name”,value) Proporciona acceso de lectura o escritura a las variables definidas en el flujo actual. Esta función toma los siguientes argumentos:
  • variable(name): lee la variable name y devuelve su valor.

  • variable(name, value): escribe el valor de la variable value en la variable name. Si se trata de una cadena, entrecomille únicamente el valor.

Esta función también crea una variable en tiempo de ejecución, una que se puede utilizar para realizar un seguimiento del estado del componente. Puede utilizarlo cuando el componente necesite realizar un seguimiento del estado interno porque este no ejecute la transición al siguiente estado del flujo de diálogo.
conversation.nlpResult() Devuelve un objeto auxiliar NLPResult para las variables nlpresult. Por ejemplo, puede buscar el valor de una entidad extraída de la entrada del usuario llamando a conversation.nlpResult.entityMatches(entity name). Puede utilizar este valor para actualizar una variable de tipo de entidad.
conversation.request() Accede al cuerpo del objeto JSON enviado por el bot. Utilice esta función para analizar la carga útil de cualquier información que no esté directamente expuesta por una de las funciones del SDK.
conversation.response() Otorga acceso a la carga útil de respuesta HTTP (un objeto JSON) que se devuelve al bot al llamar a done().