Skip to content

Instantly share code, notes, and snippets.

@Trystan4861
Forked from leifermendez/telegram.provider.js
Created December 12, 2023 21:12
Show Gist options
  • Save Trystan4861/ef085b7f0f3aa5c89248f9f5106049a3 to your computer and use it in GitHub Desktop.
Save Trystan4861/ef085b7f0f3aa5c89248f9f5106049a3 to your computer and use it in GitHub Desktop.
telegram.provider.js para tener el chatbot para telegram
const { ProviderClass } = require('@bot-whatsapp/bot')
const TelegramBot = require("node-telegram-bot-api");
class TelegramProvider extends ProviderClass {
vendor
constructor({ token }) {
super()
this.vendor = new TelegramBot(token, { polling: true });
const listEvents = this.busEvents()
for (const { event, func } of listEvents) {
this.vendor.on(event, func)
}
this.vendor.on('polling_error', (error) => {
// console.log(error)
console.log("Polling error code: ", error.code);
console.log("Error Message: ", error.message);
console.log("Stack trace: ", error.stack);
});
}
/**
* Mapeamos los eventos nativos de whatsapp-web.js a los que la clase Provider espera
* para tener un standar de eventos
* @returns
*/
busEvents = () => [
{
event: 'message',
func: (payload) => {
payload = { ...payload, from: payload.chat.id, body:payload.text }
console.log(`payload`, payload)
this.emit('message', payload)
},
},
]
/**
*
* @param {*} number
* @param {*} message
* @param {*} param2
* @returns
*/
sendMessage = async (number, message, { options } = { options: {} }) => {
return this.vendor.sendMessage(number, message);
}
}
module.exports = TelegramProvider
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment