mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-19 20:19:15 +00:00
feat(starters): meta memory base template added
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
const { EventEmitter } = require('node:events')
|
const { EventEmitter } = require('node:events')
|
||||||
const polka = require('polka')
|
const polka = require('polka')
|
||||||
const { urlencoded } = require('body-parser')
|
const { urlencoded, json } = require('body-parser')
|
||||||
|
|
||||||
class MetaWebHookServer extends EventEmitter {
|
class MetaWebHookServer extends EventEmitter {
|
||||||
metaServer
|
metaServer
|
||||||
@@ -8,9 +8,11 @@ class MetaWebHookServer extends EventEmitter {
|
|||||||
token
|
token
|
||||||
constructor(_token, _metaPort) {
|
constructor(_token, _metaPort) {
|
||||||
super()
|
super()
|
||||||
this.metaServer = this.buildHTTPServer()
|
this.metaServer = polka()
|
||||||
this.metaPort = _metaPort
|
this.metaPort = _metaPort
|
||||||
this.token = _token
|
this.token = _token
|
||||||
|
|
||||||
|
this.buildHTTPServer()
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,8 +23,14 @@ class MetaWebHookServer extends EventEmitter {
|
|||||||
*/
|
*/
|
||||||
incomingMsg = (req, res) => {
|
incomingMsg = (req, res) => {
|
||||||
const { body } = req
|
const { body } = req
|
||||||
const message = body.entry[0].changes[0].value.messages[0]
|
|
||||||
|
const messages = body.entry[0].changes[0].value?.messages
|
||||||
|
|
||||||
|
if (!messages) return
|
||||||
|
|
||||||
|
const [message] = messages
|
||||||
const to = body.entry[0].changes[0].value.metadata.display_phone_number
|
const to = body.entry[0].changes[0].value.metadata.display_phone_number
|
||||||
|
|
||||||
this.emit('message', {
|
this.emit('message', {
|
||||||
from: message.from,
|
from: message.from,
|
||||||
to,
|
to,
|
||||||
@@ -55,16 +63,16 @@ class MetaWebHookServer extends EventEmitter {
|
|||||||
const challenge = query['hub.challenge']
|
const challenge = query['hub.challenge']
|
||||||
|
|
||||||
if (!mode || !token) {
|
if (!mode || !token) {
|
||||||
return res.sendStatus(403)
|
return (res.statusCode = 403), res.end('No token!')
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.tokenIsValid(mode, token)) {
|
if (this.tokenIsValid(mode, token)) {
|
||||||
console.log('Webhook verified--->😎😎😎😎')
|
console.log('Webhook verified--->😎😎😎😎')
|
||||||
res.status(200).send(challenge)
|
return (res.statusCode = 200), res.end(challenge)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.tokenIsValid(mode, token)) {
|
if (!this.tokenIsValid(mode, token)) {
|
||||||
res.sendStatus(403)
|
return (res.statusCode = 403), res.end('No token!')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,12 +81,13 @@ class MetaWebHookServer extends EventEmitter {
|
|||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
buildHTTPServer = () => {
|
buildHTTPServer = () => {
|
||||||
polka()
|
this.metaServer
|
||||||
.use(urlencoded({ extended: true }))
|
.use(urlencoded({ extended: true }))
|
||||||
.get('/webhook', this.verifyToken)
|
.get('/webhook', this.verifyToken)
|
||||||
|
|
||||||
return polka()
|
this.metaServer
|
||||||
.use(urlencoded({ extended: true }))
|
.use(urlencoded({ extended: true }))
|
||||||
|
.use(json())
|
||||||
.post('/webhook', this.incomingMsg)
|
.post('/webhook', this.incomingMsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -91,7 +100,7 @@ class MetaWebHookServer extends EventEmitter {
|
|||||||
console.log(``)
|
console.log(``)
|
||||||
console.log(`[meta]: Agregar esta url "WHEN A MESSAGE COMES IN"`)
|
console.log(`[meta]: Agregar esta url "WHEN A MESSAGE COMES IN"`)
|
||||||
console.log(
|
console.log(
|
||||||
`[meta]: POST http://localhost:${this.metaPort}/meta-hook`
|
`[meta]: POST http://localhost:${this.metaPort}/webhook`
|
||||||
)
|
)
|
||||||
console.log(`[meta]: Más información en la documentacion`)
|
console.log(`[meta]: Más información en la documentacion`)
|
||||||
console.log(``)
|
console.log(``)
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ const {
|
|||||||
addChild,
|
addChild,
|
||||||
} = require('@bot-whatsapp/bot')
|
} = require('@bot-whatsapp/bot')
|
||||||
|
|
||||||
const TwilioProvider = require('@bot-whatsapp/provider/twilio')
|
const MetaProvider = require('@bot-whatsapp/provider/meta')
|
||||||
const MockAdapter = require('@bot-whatsapp/database/mock')
|
const MockAdapter = require('@bot-whatsapp/database/mock')
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -79,10 +79,10 @@ const main = async () => {
|
|||||||
const adapterDB = new MockAdapter()
|
const adapterDB = new MockAdapter()
|
||||||
const adapterFlow = createFlow([flowPrincipal])
|
const adapterFlow = createFlow([flowPrincipal])
|
||||||
|
|
||||||
const adapterProvider = createProvider(TwilioProvider, {
|
const adapterProvider = createProvider(MetaProvider, {
|
||||||
accountSid: 'YOUR_ACCOUNT_SID',
|
jwtToken: 'jwtToken',
|
||||||
authToken: 'YOUR_ACCOUNT_TOKEN',
|
numberId: 'numberId',
|
||||||
vendorNumber: '+14155238886',
|
verifyToken: 'verifyToken',
|
||||||
})
|
})
|
||||||
|
|
||||||
createBot({
|
createBot({
|
||||||
|
|||||||
@@ -14,7 +14,8 @@
|
|||||||
"@bot-whatsapp/bot": "latest",
|
"@bot-whatsapp/bot": "latest",
|
||||||
"@bot-whatsapp/cli": "latest",
|
"@bot-whatsapp/cli": "latest",
|
||||||
"@bot-whatsapp/database": "latest",
|
"@bot-whatsapp/database": "latest",
|
||||||
"@bot-whatsapp/provider": "latest"
|
"@bot-whatsapp/provider": "latest",
|
||||||
|
"axios": "^1.2.1"
|
||||||
},
|
},
|
||||||
"author": "",
|
"author": "",
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
|
|||||||
Reference in New Issue
Block a user