You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Telethon提取Telegram账户的自定义姓名与个人简介

实现逻辑说明

  1. 你调用ImportContactsRequest返回的users[0]本身就包含用户原生设置的姓名字段,无需额外处理,你之前只提取了username所以没拿到这两个值。你导入时填写的__test__、__last_test__是你账号侧对该联系人的备注,和用户自己设置的原生姓名完全独立,所以删除联系人后备注消失,就会显示用户自定义的原生姓名,属于平台正常逻辑。
  2. 个人简介(bio)不在基础用户信息结构里,需要单独调用GetFullUserRequest接口获取。

调整后的完整代码

from telethon import functions, types

def check(phone_number):
    try:
        contact = types.InputPhoneContact(
            client_id = 0, 
            phone = phone_number, 
            first_name="__test__", 
            last_name="__last_test__"
        )
        contacts = client(functions.contacts.ImportContactsRequest([contact]))
        user = contacts.to_dict()['users'][0]
        # 提取用户原生姓名
        original_first_name = user['first_name']
        original_last_name = user['last_name'] if user.get('last_name') else ''
        username = user['username']
        # 提取个人简介bio
        full_user = client(functions.users.GetFullUserRequest(id=user['id']))
        bio = full_user.about if full_user.about else ''
        # 传入用户ID删除联系人,比传username兼容性更好,适配没有设置用户名的账号
        client(functions.contacts.DeleteContactsRequest(id=[user['id']]))
        # 按需返回所有提取到的字段
        return {
            "username": username,
            "first_name": original_first_name,
            "last_name": original_last_name,
            "bio": bio
        }
        
    except:
        return "__err__"

内容的提问来源于stack exchange,提问作者style talaei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 07:12:02