mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-21 04:59:15 +00:00
153 lines
4.8 KiB
Plaintext
153 lines
4.8 KiB
Plaintext
import Alert from '../../../../components/widgets/Alert'
|
||
import Navigation from '../../../../components/widgets/Navigation'
|
||
|
||
# Twilio
|
||
|
||
Twilio es una plataforma de desarrollo que permite a los desarrolladores construir aplicaciones de comunicación en la nube y sistemas web. Las API de comunicaciones de Twilio permiten a las empresas proporcionar la experiencia de comunicación adecuada para sus clientes dentro de la web y las aplicaciones móviles. Al usar las API de Twilio, los desarrolladores pueden agregar rápidamente esta funcionalidad a una aplicación, como mensajes de voz, videollamadas, mensajes de texto y más.
|
||
|
||
<Alert>
|
||
Twilio te proporciona una cuenta **Sandbox** para que puedas probar
|
||
gratuitamente el servicio
|
||
</Alert>
|
||
|
||
### Requerimientos
|
||
|
||
- Registrar una cuenta de [twilio](https://www.twilio.com/try-twilio)
|
||
|
||
---
|
||
|
||
### Requerimientos
|
||
|
||
Debemos aceptar los términos y condiciones y luego activar la cuenta sandbox
|
||
|
||

|
||
|
||
---
|
||
|
||
Observamos que ahora tenemos un número de WhatsApp y una frase. El número proporcionado es un **número de pruebas** que te ofrece Twilio, luego que actives un plan de pago puedes comprar un número para tu uso.
|
||
Guarda ese número como un contacto de WhatsApp en tu móvil y después envíale el mensaje que te asignan. En el ejemplo de la pantalla sale **join score-state**
|
||
|
||

|
||
|
||
---
|
||
|
||
Luego Twilio te responde con un mensaje confirmando la verificación de la conexión. **Este paso solo es necesario cuando estás en modo Sandbox.**
|
||
|
||

|
||
|
||
---
|
||
|
||
Ahora dirígete a la sección de Ajustes de WhatsApp ubicada en la consola de Twilio.
|
||
|
||

|
||
|
||
---
|
||
|
||
En esta sección puedes configurar los **Webhook** que conectaran con el chatbot.
|
||
|
||
**¿No sabes cuál es tu link?** continúa leyendo esta guía más adelante entenderás
|
||
|
||

|
||
|
||
---
|
||
|
||
También necesitarás el **Account SID y Auth Token** estos datos los consigues [console.twilio.com](https://console.twilio.com).
|
||
|
||
**¿Que hago con estos datos?** guardalos o tenlos ubicados porque los necesitaremos en las siguientes pantallas
|
||
|
||

|
||
|
||
---
|
||
|
||
En el **archivo principal** del bot donde estás implementando la función del adaptador de twilio vas a colocar los siguientes datos:
|
||
|
||
- **ACC_SID:** Lo encontraras en console.twilio puedes ver la pantalla anterior
|
||
- **ACC_TOKEN:** Lo encontraras en console.twilio puedes ver la pantalla anterior
|
||
- **ACC_VENDOR:** Es el numero de whatsapp (si ya tienes el plan de pago de Twilio usa el numero que compraste), si aun estas en modo
|
||
sandbox utliza el numero proporcionado en el paso numero 2
|
||
|
||
<Alert>
|
||
En el ejemplo de abajo puedes ver como una sugerencia de como puede ser
|
||
utilizando variables de entorno
|
||
</Alert>
|
||
|
||
```js
|
||
const main = async () => {
|
||
const adapterDB = new MockAdapter()
|
||
const adapterFlow = createFlow([flowPrincipal])
|
||
|
||
const adapterProvider = createProvider(TwilioProvider, {
|
||
accountSid: process.env.ACC_SID, //AC4695aa720b4d700a***************
|
||
authToken: process.env.ACC_TOKEN, //3f6fae09f7a1c3534***************
|
||
vendorNumber: process.env.ACC_VENDOR, //+14155238886
|
||
})
|
||
|
||
createBot({
|
||
flow: adapterFlow,
|
||
provider: adapterProvider,
|
||
database: adapterDB,
|
||
})
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
Luego de ejecutar el bot encontraras un mensaje en la consola similar al siguiente.
|
||
Donde podrás encontrar la URL para tu **webhook**
|
||
|
||
```shell
|
||
$ npm start
|
||
|
||
> bot-whatsapp-base-twilio-memory@1.0.0 start
|
||
> node app.js
|
||
|
||
|
||
[Twilio]: Agregar esta url "WHEN A MESSAGE COMES IN"
|
||
[Twilio]: POST http://localhost:3000/twilio-hook
|
||
[Twilio]: Más información en la documentacion
|
||
```
|
||
|
||
---
|
||
|
||
## ¿Ahora que hago?
|
||
|
||
Podrás observar que el bot inicia un servicio HTTP (endpoint) que debe estar en un servidor en linea para que puedas conectarlo con Twilio.
|
||
|
||
---
|
||
|
||
### Opción 1:
|
||
|
||
Puedes hacer pruebas en local atrevés de un servidor proxy tunnel.
|
||
Descarga **[ngork](https://ngrok.com/download)** es una herramienta gratuita que nos ayudara con esto.
|
||
|
||

|
||
|
||
---
|
||
|
||
Esto genera una URL en línea que podemos usar en la parte de **WebHook** de Twilio
|
||
|
||

|
||
|
||
---
|
||
|
||
### Opción 2:
|
||
|
||
Si ya tienes desplegado tu bot en un servidor tienes que obtener la IP publica o subdominio que te proporcionaron. **Ejemplo** si estas usando
|
||
[Railway](https://railway.app/) puedes ir a la seccion de ajustes y generar un subdominio. Ya tendriamos el **WebHook**
|
||
`https://base-twilio-memory-production.up.railway.app/twilio-hook`
|
||
|
||

|
||
|
||
---
|
||
|
||

|
||
|
||
---
|
||
|
||
<Navigation
|
||
pages={[
|
||
{ name: 'Proveedores', link: '/docs/providers' },
|
||
{ name: 'Meta', link: '/docs/providers/meta' },
|
||
]}
|
||
/>
|