如何检查用户在开始使用node.js和telegram .js时是否有tg订阅premium ? &g



我正在尝试拉数据,用户是否有高级tg,但它不起作用。

Сan你知道这个问题的解决方法并帮助我吗?

Telegram Bot Api提供了一个User对象,代表一个Telegram用户。

该节点包含以下字段:

is_premium
类型:真正的
可选。True,如果此用户是Telegram Premium用户

这已添加到2022年6月20日发布的Bot API 6.1中


所以你只需要使用Telegraf来获取User对象,并检查是否设置了is_premium键。

示例,User应该在ctx上作为from可用:

bot.on(message('text'), async (ctx) => {
const is_premium = ctx.from.is_premium;
});

const { Telegraf } = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.command('check_premium', async (ctx) => {
const chatId = ctx.message.chat.id
const userId = ctx.message.from.id

try {
const chatMember = await ctx.telegram.getChatMember(chatId, userId)
const isPremium = chatMember.status === 'creator' || chatMember.status === 'administrator' || chatMember.status === 'member' && chatMember.is_member == true && chatMember.can_pin_messages == true

if (isPremium) {
ctx.reply('Congratulations! You have Telegram Premium.')
} else {
ctx.reply('Sorry, you do not have Telegram Premium.')
}
} catch (error) {
console.error(error)
ctx.reply('An error occurred while checking your subscription status.')
}
})
bot.launch()

相关内容

  • 没有找到相关文章

最新更新