Telegram Bot:是否可以使用用户名获取用户ID?

问题描述 投票:0回答:5

如标题所说,是否可以通过username获取userid? 我的意思是,我想向我的机器人添加一项功能,告诉您其他用户使用其用户名的用户 ID。

Telegram API 是否提供执行此操作的选项?

telegram telegram-bot
5个回答
6
投票

Mohammod Sohail的解决方案有部分错误。

有多种方法可以从

user_id

 获取 
username
,但上面提到的在线工具使用的不仅仅是机器人 API。他们的服务器上运行着一个电报客户端。
也就是说,有一个技巧可以纯粹使用机器人 API 从 
user_id
 获取 
username
(并不总是有效)。

假设您正在与您的朋友

X

聊天并且您想了解他的
user_id
。要获得 
user_id
,请将您的对话之一转发给您的机器人。机器人将以 JSON 格式获取消息作者的 
first name
username
user_id
timestamp
 等。现在您可以从中提取 
user_id
。请注意,即使用户没有 
username
,或者它是频道或另一个机器人,这也适用。

这是上述内容的机器人实现:

我已将我朋友的一条消息转发给机器人

@get_id_bot 然后机器人返回我朋友帐户的用户名和 ID


5
投票
我相信您所说的昵称是

username

,而 userid 是唯一的 
id
,如 API 文档中所述。
仍然可以使用机器人进行反向查找。

这可以通过官方 Telegram API 的增强版本实现,称为

PWRTelegram API

我引用了文档。

不仅可以通过频道和组解析用户名,还可以通过 普通用户和机器人

更新:

这里是我为此目的制作的一个库:

更新2:

我不再维护上述库,但是您仍然可以使用 td-cli 二进制文件解析用户名。


4
投票
您可以使用

pwrtelegram bot API来解析机器人和普通用户的用户名。

它将使用内置的 mtproto 客户端自动解析您在 chat_id 参数中提供的用户名。

您可以在需要 chat_id 参数的每个方法中使用机器人和普通用户的用户名,但要获取有关用户/机器人的信息,您可以使用

getChat 方法。


1
投票
不。现在还不可能。


0
投票
2024 年,我们有了

“getMe” 方法: https://core.telegram.org/bots/api#getme

返回 User 对象并包含用户(机器人)

“id”

© www.soinside.com 2019 - 2024. All rights reserved.