Twilio

Más detalles de configuración puedes consultarlos aquí


Enviar mensaje

const flowMensaje = addKeyword('hola')
    .addAnswer(
        'Aqui va un mensaje',
        {
            capture: true,
        },
        async (ctx, {provider}) => {
            await provider.sendtext(ctx.from, 'mensaje')
            //==> ctx.from puede ser reemplazado por un número de teléfono
            //ej: 59170000000, donde el 591 es el código de país y el 70000000 es el número de teléfono
        }
    )

Enviar media (imagen, pdf, audio, video)

const flowMensaje = addKeyword('hola')
    .addAnswer(
        'Aqui va un mensaje',
        {
            capture: true,
        },
        async (ctx, {provider}) => {
            await sendMedia = async (ctx.from, 'mensaje', 'url de la media')
        }
    )

Enviar botones (maximo de 3 botones)

// metodo sin uso del provider
const flowMensaje = addKeyword('hola')
    .addAnswer(
        'Aqui va un mensaje',
        {
            capture: true,
            buttons: [
                {body: 'opcion 1'},
                {body: 'opcion 2'},
                {body: 'opcion 3'},
            ]
        },
    )

Para casos específicos donde se necesite enviar botones desde el provider revisar la ruta "node_modules/@bot-whatsapp/provider/meta/index.cjs", dentro el proyecto.

Enviar lista

const flowMensaje = addKeyword('hola')
    .addAnswer(
        'Aqui va un mensaje',
        {
            capture: true
        },
        async (ctx, {provider}) => {
            const list = {
                "header": {
                    "type": "text",
                    "text": "<HEADER_TEXT>"
                },
                "body": {
                    "text": "<BODY_TEXT>"
                },
                "footer": {
                    "text": "<FOOTER_TEXT>"
                },
                "action": {
                    "button": "<BUTTON_TEXT>",
                    "sections": [
                        {
                            "title": "<LIST_SECTION_1_TITLE>",
                            "rows": [
                                {
                                    "id": "<LIST_SECTION_1_ROW_1_ID>",
                                    "title": "<SECTION_1_ROW_1_TITLE>",
                                    "description": "<SECTION_1_ROW_1_DESC>"
                                },
                                {
                                    "id": "<LIST_SECTION_1_ROW_2_ID>",
                                    "title": "<SECTION_1_ROW_2_TITLE>",
                                    "description": "<SECTION_1_ROW_2_DESC>"
                                }
                            ]
                        },
                        {
                            "title": "<LIST_SECTION_2_TITLE>",
                            "rows": [
                                {
                                    "id": "<LIST_SECTION_2_ROW_1_ID>",
                                    "title": "<SECTION_2_ROW_1_TITLE>",
                                    "description": "<SECTION_2_ROW_1_DESC>"
                                },
                                {
                                    "id": "<LIST_SECTION_2_ROW_2_ID>",
                                    "title": "<SECTION_2_ROW_2_TITLE>",
                                    "description": "<SECTION_2_ROW_2_DESC>"
                                }
                            ]
                        }
                    ]
                }
            }
            await provider.sendLists(ctx.from, list)
        }
    )

Funciones de la librería

Puede usarse las mismas funciones que usan los proveedores gratuitos.