如何订阅和取消订阅用户从电报机器人使用Node.js node-telegram-bot-api? &



我正在编写一个程序,使用Node.js和node-telegram-bot-api模块开发一个电报聊天机器人。我想设置命令,这样当收到/取消订阅时,用户应该从bot取消订阅。我阅读了模块的github文档,但找不到实现这一目标的方法。https://github.com/yagop/node-telegram-bot-api/blob/master/doc/api.md

在这个文档中,有一个方法deleteChat可用,但我不确定它是否会与模块一起工作。https://core.telegram.org/methods working-with-chatssupergroupschannels

任何建议或帮助是感激的,谢谢!

你需要一个数据库来设置用户为'订阅'或'取消订阅'。

我将给你一个关于存储包的例子您需要以下包:

  • node-telegram-bot-api
存储包是本地存储,可能会在应用重启时重置
下面给出的代码可能会给你一个想法,它只是让你创建订阅和取消订阅的功能,你可以使用循环方法在'array'
中向用户发送新闻
const TelegramBot = require('node-telegram-bot-api');
// replace the value below with the Telegram token you receive from @BotFather
const token = 'YOUR_TELEGRAM_BOT_TOKEN';
var store = require('store')
var subscribed_users = store.get('subscribed')
// Create a bot that uses 'polling' to fetch new updates
const bot = new TelegramBot(token, {polling: true});
// Matches "/echo [whatever]"
bot.onText('/start', (msg) => {
// 'msg' is the received Message from Telegram
const chatId = msg.chat.id;
bot.sendMessage(chatId, 'Welcome!nUser /subscribe to subscribe to newsletter or /unsubscribe to unsubscribe to news letter');
});
bot.onText('/subscribe', (msg) => {
if(!susbcribed_users){
var subscribed_users = []
}
const chatId = msg.chat.id;
//retrive subscribed users array data
if(subscribed_users.includes(msg.chat.id)){
bot.sendMessage(chatId, "You're already subscribed to newsletter!")
return
}
var new_data = subscribed_users.push(msg.chat.id)
store.set('subscribed', new_data)
bot.sendMessage(chatId, "You're subscribed to newsletter!")

})
bot.inText('/unsubscribe', (msg) => {
const chatId = msg.chat.id;
if(!subscribed_users.includes(msg.chat.id)){
bot.sendMessage(chatId, "You're not subscribed to newsletter!")
return
}
const newArr = arr.filter(object => {
return object !== msg.chat.id;
});
store.set('subscribed', newArr)
bot.sendMessage(chatId, "You're subscribed to newsletter!")
})

最新更新