当前位置: 首页 > 知识库问答 >
问题:

如何让Telegram机器人从提中获取用户信息

云韬
2023-03-14

我刚刚开始学习Telegram Bot API,以学习如何通过Java对Bot进行编程。我不明白机器人如何识别通过@提到的用户

例如,假设我希望我的机器人能够计算和存储一个用户被提到一个组中的次数。他需要的是被标记用户的id。

我可以使用update解析传入消息以检测实体。getMessage()。getEntities()然后使用MessageEntity获取实体的类型。getType()。现在,如果我理解的话,有两种类型的提及:@

所以我的第一个问题是:为什么?我真的不明白为什么text_mention应该携带有关标记用户的信息,而提及不应该。

那么主要的问题是:我如何解决这个问题?


共有1个答案

殳俊
2023-03-14

目前还没有合适的方法。

对于此类功能,您可以使用TdLib。以下是Java示例

如果用户在组中,在提到他们的地方,您可以使用此类方法获取用户列表并按用户名查找:

//@description  Return recently joined users in reverse chronological order 
channelParticipantsRecent = ChannelParticipantsFilter;

//@description  Return privileged participants  
channelParticipantsAdmins = ChannelParticipantsFilter;

//@description  Return kicked from the channel  
channelParticipantsKicked = ChannelParticipantsFilter;

//@description  Return bots in the channel  
channelParticipantsBots = ChannelParticipantsFilter;
 类似资料:
  • 我正在使用java构建一个面向回复键盘的机器人,我需要它以不同的方式处理两种情况,其中最新消息的文本基于上一条消息的文本是相同的。如何获取或存储上一条消息的文本作为公共变量? 我的概念建模如下: 我有一个很大的If-Else-If语句,其中每个If块的条件沿着 我希望代码根据之前的消息不同地处理MessageText相同的两种情况。

  • 我一直在使用Telegram机器人,并试图从组中获取成员列表,但我不知道我必须使用哪些方法。 https://gram.js.org/beta/classes/TelegramClient.html#getParticipants和我找到了这个文件,但不知道如何使用它。

  • 我正在制作一个JDA(Java Discord API)程序,它需要检查消息是否是由机器人本身发送的。我怎样才能做到这一点?我想检查消息发送者的用户ID是否等于机器人的用户ID,但我如何在程序中获得机器人本身的用户ID?

  • 消息收件人用户或GroupChat id的整数唯一标识符

  • 我一直在使用电报机器人为一个组和用户发送通知。 我已经知道我可以通过使用getUpdates在我的机器人上接收用户的消息来获取聊天ID。 我也知道我可以使用相同的方法获取Group ID... 但我真正需要的是:我的团队中有三个用户。 我的机器人 有可能得到第三个用户的ID吗?PS:我是群主,还将我的机器人添加为管理员... 第三个用户是普通用户。有人能帮我吗? 谢啦!

  • 机器人信息 包含机器人的基本信息和服务管理。在机器人列表页点击“基本信息”,跳转到机器人信息页面;或者点击“设置机器人”,在机器人详情页点击左侧的“机器人信息”,也可以进入机器人信息页面。 基本信息 基本信息包括机器人昵称和头像设置。 服务管理 服务管理客队机器人服务功能进行设置,现主要分为六大类:日常聊天、物流查询、自动对联、机器写诗、知识问答、自定义闲聊。选择服务功能的开启之后,便可点击左下角