如何通过Telethon获取Telegram用户的原始姓名(名和姓)?
获取Telegram用户原始姓名的方法
当你通过以下方式获取Telegram用户信息时,返回的first_name和last_name会优先显示你本地通讯录中保存的自定义名称,而非用户自行设置的原始姓名:
user = client.get_input_entity(user.id)
或者
Full_user = await client(GetFullUserRequest(User.id))
要获取用户自己设置的原始姓名,直接访问用户对象的original_first_name和original_last_name字段即可,这两个字段不受本地通讯录自定义名称的影响。
示例代码
- 使用
GetFullUserRequest的场景:
full_user = await client(GetFullUserRequest(user_id)) # 获取用户原始名 original_first = full_user.users[0].original_first_name # 获取用户原始姓 original_last = full_user.users[0].original_last_name
- 使用
get_input_entity的场景:
user = await client.get_input_entity(user_id) original_first = user.original_first_name original_last = user.original_last_name
简单来说,first_name/last_name是带本地自定义的显示名,original_first_name/original_last_name才是用户账号本身设置的原始姓名。
内容的提问来源于stack exchange,提问作者Rufat
相关产品推荐
相关产品推荐

