如何知道用户从哪里开始聊天?从组内还是直接从机器人内部?

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" 是发送给群组的消息。