Canal Personalizado

Esta función se encuentra actualmente en Beta. Si tiene algún problema, contáctenos aquí.

El canal personalizado solo está disponible para planes empresariales. Actualice o suscríbase a un plan empresarial si desea utilizar esta función.

Flujo de Canal Personalizado

Cómo Funciona

Recibir un Mensaje:

Para recibir un mensaje a través de un canal personalizado, se deben seguir los siguientes pasos:

  1. Cuando un contacto intenta enviar un mensaje, el proveedor de servicios de mensajería llamará a su servidor de integración personalizado con la carga útil del mensaje (consulte la documentación de la API del proveedor de servicios de mensajería como referencia).

  2. Su servidor de integración personalizado recibirá el mensaje y lo publicará en Telenet (en formato Telenet).

  3. Telenet recibirá la solicitud de publicación, guardará el mensaje y lo mostrará en el módulo de mensajería.

Enviando un mensaje:

Para enviar un mensaje a través de un canal personalizado, se deben seguir los siguientes pasos:

  1. Cuando un Usuario/Flujo de trabajo/Difusión intente enviar un mensaje, Telenet llamará a su servidor de integración personalizado con la carga útil del mensaje (en formato Telenet).

  2. Su servidor de integración personalizado recibirá el mensaje y lo publicará en el proveedor de servicios de mensajería en el formato que requiera (consulte la documentación de la API del proveedor de servicios de mensajería como referencia).

  3. El proveedor de servicios de mensajería recibirá el Webhook y confirmará si el mensaje se entregó correctamente. Sugerencias, si el mensaje no se entrega correctamente, puede intentar agregar un mecanismo de reintento en su servidor de integración personalizado.

Configuración

Paso 1: Crea un canal

  1. En la plataforma Telenet, vaya a Configuración > Canales y haga clic en el botón AGREGAR CANAL

  2. Seleccionar Canal Personalizado

  3. Introduzca la URL base de la API

  4. Seleccione el tipo de ID para el canal y haga clic en SIGUIENTE. Este ID tiene como finalidad la identificación del usuario y se utilizará para comunicarse con su servidor de integración personalizado. Hay dos tipos de identificaciones disponibles: 1. Número de teléfono: use esto si el proveedor de servicios de mensajería reconoce los contactos en función de su número de teléfono. Formato de muestra: +60177872890 2. ID personalizado: Utilícelo si el proveedor de servicios de mensajería reconoce los contactos en función de un ID generado de forma personalizada. 1. La longitud máxima de caracteres es 50 Se permiten A-Z, a-z, 0-9, _ , =, + , / y @. 2. Se permiten A-Z, a-z, 0-9, _ , =, + , / y @.

  5. El siguiente cuadro de diálogo proporcionará la ID del canal, el token de la API y la URL del webhook, p. e., 1. ID de canal: gfd8g7fd89dgfd 2. Token API: aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd 3. URL del webhook: https://app.Telenet/custom/webhook

Sugerencias: El uso del tipo de identificación del número de teléfono le permite iniciar una conversación y enviar el primer mensaje a un contacto.

Paso 2: Pasar Mensajes a Telenet

La URL del webhook se usa para enviar mensajes, ecos de mensajes y recibos de mensajes a la plataforma Telenet.

El siguiente código llamará al webhook en la plataforma Telenet y creará el contacto (si no existe) y guardará el mensaje en el contacto.

curl -X POST \
  **<https://app.telenet/custom/webhook**> \
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
  "channelId": "gfd8g7fd89dgfd",
  "contactId": "+60177872890",
  "events": [
    {
      "type": "message",
      "mId": "xcvzzxcxczxczxc",
      "timestamp": 2132131321000,
      "message": {
        "type": "text",
        "text": "Hello World"
      }
    }
  ],
  "contact": {
    "firstName": "John",
    "lastName": "Doe",
    "profilePic": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
    "countryCode": "MY",
    "email": "john@telenet",
    "phone": "+60177872890",
    "language": "en"
  }
}'

Campos

Campo

Descripción

Validación

channelId

ID de canal único

Requerido. Campo único. Es generado por Telenet

contactId

ID de contacto único

Requerido. ID de contacto único de Telenet. 50 caracteres como máximo

events.type

Tipo de evento

Requerido. mensaje

events.mId

ID de mensaje

Requerido. ID de mensaje único. 50 caracteres como máximo

events.timestamp

Tiempo de Época UNIX (milisegundos)

Requerido. Hora del evento que activó la devolución de llamada

events.message.type

Tipo de mensaje

Requerido. Tipos de mensajes disponibles: texto, archivo adjunto, ubicación y respuesta rápida Consulte la sección Tipo de mensaje para ver otros ejemplos de tipos de mensajes.

events.message.text

Mensaje de texto

Requerido. Longitud máxima 7000 caracteres

contact.firstName

Nombre

Opcional. 50 caracteres como máximo

contact.lastName

Apellido

Opcional. 50 caracteres como máximo

contact.profilePic

URL de la foto de perfil

Opcional. El tamaño del avatar no debe superar los 100 kb. Recomendado 720x720

contact.locale

Código de configuración regional

Opcional. Consulte aquí la lista de valores.

contact.countryCode

Códido de País

Opcional. Código de país de dos letras - ISO ALPHA-2 Code

contact.timezone

Zona Horaria

Opcional. (min: -24) (max: 24)

contact.email

Correo Electrónico

Opcional. Max 50 characters

contact.phone

Teléfono

Opcional. Max 18 characters

contact.language

Idioma

Opcional. ISO 639-1

Respuesta - Éxito (estado HTTP → 200)

"OK"

Paso 3: Manejar los Mensajes Salientes de Telenet

Telenet llamará al siguiente punto final <API Base URL>/message

Importante: Asegúrese de implementar el código de mensaje saliente en la ruta /message en su servidor web

Aquí está el ejemplo cURL de Telenet llamando al punto final

curl -X POST \
  <API Base URL>/message \
  -H 'authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -d '{
	"channelId": "gfd8g7fd89dgfd",
	"contactId": "+60177872890",
	"message": {
		"type": "text",
		"text": "Hello World"
	}
}'

Respuesta - Éxito (estado HTTP → 200)

{
	"mId": "1640141607842"
}

La autenticación debe realizarse en el punto final antes de pasar el mensaje al proveedor de servicios de mensajería. Aquí hay un ejemplo de middleware express

const {validationResult} = require('express-validator');

const validateToken = (req, res, next) => {
    const apiToken = <<API Token>>
    const bearerToken = req.headers.authorization;

    if (!bearerToken)
        return res.send(401)

    const token = bearerToken.substring(7, bearerToken.length);

    if (apiToken !== token) {
        return res.send(401)
    }
    next();
};

module.exports = {
    validateToken
};

Sugerencias: también le brindamos un ejemplo de canal personalizado que puede intentar implementar en su servidor. Por favor, eche un vistazo a nuestro proyecto GitHub aquí.

Tipo de Mensajes

Muestra de texto

{
  "type": "text",
  "text": "Welcome to telenet",
}

Campos

Campo

Descripción

Validación

Tipo

Tipo de Mensaje

Requerido. Texto

texto

Texto de Mensaje

Requerido. Longitud máxima 7000 caracteres

Muestra para Archivo Multimedia

{
  "type": "attachment",
  "attachment": {
    "type": "image|video|audio|file",
    "url": "https://abc/japan.png",
    "mimeType": "image/png",
    "fileName":"company logo.png",
    "description": "latest company logo"
  }
}

Campo

Descripción

Validación

type

Tipo de mensaje

Requerido. adjunto archivo.

attachment.type

Tipo de archivo adjunto

Obligatorio.Tipos de archivos adjuntos disponibles: imagen, video, audio y archivo

attachment.url

URL

Requerido. 2000 caracteres como máximo. Asegúrese de que sea un enlace público para que los usuarios o contactos puedan ver el contenido

attachment.mimeType

Mime el tipo del archivo adjunto

Opcional

attachment.fileName

Nombre del archivo

Opcional. El nombre del archivo debe incluir la extensión. Max 256 caracteres (incluida la extensión de archivo). Enviar un archivo sin extensión o con una extensión incorrecta puede hacer que el contacto o el usuario no pueda abrir el archivo

attachment.description

Descripción del archivo

Opcional. 256 caracteres como máximo. Solo aplicable para archivo adjunto.tipo = imagen

Muestra para la Ubicación

{
  "type": "location",
  "latitude": 0.123456,
  "longitude": -0.1234,
  "address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"
}

Campo

Descripción

Validación

type

Tipo de mensaje

Requerido. Ubicación

latitude

Coordenadas

Requerido. Latitud (±90°) dentro de rangos válidos

longitude

Coordenadas

Requerido. Longitud (±180°) dentro de rangos válidos

address

Dirección del sitio

Opcional. 256 caracteres como máximo

Muestra de Respuesta Rápida

{
  "type": "quick_reply",
  "title": "Select your preferred language",  
  "replies": [
    "Malay",
    "English"
  ]
}

Campo

Descripción

Validación

type

Tipo de Mensaje

Requerido. Respuesta rápida

title

Título de respuesta rápida

Requerido. 256 caracteres como máximo

replies

Texto de respuesta

Requerido. Máximo de 10 respuestas con un máximo de 256 caracteres por cada respuesta

Solución de Problemas

Last updated