我试图拉数据,用户是否有一个溢价tg,但它不工作.你知道这个问题的解决办法吗?
ef1yzkbh1#
Telegram Bot API为您提供了一个User对象,表示一个Telegram用户。此对象包含以下字段:is_premium个类型:真
User
is_premium
这已添加到2022年6月20日发布的Bot API 6.1中因此,您只需要使用Telegraf获取User对象,并检查是否设置了is_premium键。例如,User应在ctx上以from的形式可用:
ctx
from
bot.on(message('text'), async (ctx) => { const is_premium = ctx.from.is_premium; });
字符串
xfb7svmp2#
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()
2条答案
按热度按时间ef1yzkbh1#
Telegram Bot API为您提供了一个
User
对象,表示一个Telegram用户。此对象包含以下字段:
is_premium
个类型:真
这已添加到2022年6月20日发布的Bot API 6.1中
因此,您只需要使用Telegraf获取User对象,并检查是否设置了
is_premium
键。例如,
User
应在ctx
上以from
的形式可用:字符串
xfb7svmp2#
字符串