如何知道用户从哪里开始聊天?从组内还是直接从机器人内部?
how to know where user starting chat? from inside group or from inside bot directly?
我使用 telegraf.js
创建了电报机器人
机器人工作正常,但是如果用户直接从机器人内部发送消息,我需要处理不同的事情,假设机器人应该重播帮助命令文档(例如)。
问题是:
如何识别用户从哪里开始聊天?从聊天组内部还是直接从机器人内部?
我试过了
var groupInfo =await ctx.telegram.getChat()
没有成功
我认为解决方案很简单,但直到现在我都找不到。
先谢谢你。
您应该查看 Chat 类型的 Telegram 文档。它有一个名为 Type
的字段,根据文档:
Type of chat, can be either “private”, “group”, “supergroup” or “channel”
因此在 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"
是发送给群组的消息。
我使用 telegraf.js
创建了电报机器人机器人工作正常,但是如果用户直接从机器人内部发送消息,我需要处理不同的事情,假设机器人应该重播帮助命令文档(例如)。
问题是:
如何识别用户从哪里开始聊天?从聊天组内部还是直接从机器人内部?
我试过了
var groupInfo =await ctx.telegram.getChat()
没有成功
我认为解决方案很简单,但直到现在我都找不到。
先谢谢你。
您应该查看 Chat 类型的 Telegram 文档。它有一个名为 Type
的字段,根据文档:
Type of chat, can be either “private”, “group”, “supergroup” or “channel”
因此在 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"
是发送给群组的消息。