我使用 telegraf.js 创建了电报机器人
机器人工作正常,但是如果用户直接从机器人内部发送消息,我需要处理不同的事情,假设机器人应该使用帮助命令文档重播(例如)。
问题是:
如何识别用户开始聊天的位置?来自聊天组内部还是直接来自机器人内部?
我试过
var groupInfo =await ctx.telegram.getChat()
没有成功
我认为解决方案很简单,但直到现在我都找不到。
谢谢你。
我使用 telegraf.js 创建了电报机器人
机器人工作正常,但是如果用户直接从机器人内部发送消息,我需要处理不同的事情,假设机器人应该使用帮助命令文档重播(例如)。
问题是:
如何识别用户开始聊天的位置?来自聊天组内部还是直接来自机器人内部?
我试过
var groupInfo =await ctx.telegram.getChat()
没有成功
我认为解决方案很简单,但直到现在我都找不到。
谢谢你。
您应该查看 Telegram 文档以了解Chat类型。它有一个名为的字段Type
,根据文档:
聊天类型,可以是“私人”、“群组”、“超级群组”或“频道”</p>
因此,在 telegraf.js 中,您可以通过以下方式检查该字段:
bot.on('text', (ctx) => {
return ctx.reply(`Chat type is: ${ctx.message.chat.type}`)
})
在您的情况下,ctx.message.chat.type == "private"
将是私下发送到您的机器人的消息,ctx.message.chat.type == "group"
或者ctx.message.chat.type == "supergroup"
是发送到组的消息。