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.

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

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

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"
  }
}

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"
}

Muestra de Respuesta Rápida

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

Solución de Problemas

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

Last updated