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

如何使用Telethon通过手机号删除Telegram联系人(解决无用户名报错问题)

问题原因

原有实现的核心问题是DeleteContactsRequest的入参仅绑定了用户名字段,而Telegram允许用户不设置用户名,此时username为None会触发参数校验失败。实际上Telethon的删除联系人接口支持直接传入用户ID或完整的User对象,不需要依赖用户名作为唯一标识。

修改后完整实现代码

首先导入依赖:

from telethon import TelegramClient, events, sync
from telethon.tl.types import InputPhoneContact
from telethon import functions, types

业务逻辑代码:

phone_number = "待删除联系人的手机号"
contact = InputPhoneContact(client_id=0, phone=phone_number, first_name="临时", last_name="联系人")
contacts = client(functions.contacts.ImportContactsRequest([contact]))

if len(contacts.users) > 0:
    # 直接传入返回的User对象即可,不需要依赖username
    target_user = contacts.users[0]
    client(functions.contacts.DeleteContactsRequest(id=[target_user]))
补充说明
  • 该实现不依赖用户是否设置用户名,只要手机号对应的Telegram账号存在,就能稳定完成删除操作
  • 导入临时联系人的操作不会给对方发送任何通知,不会打扰目标用户
  • 如果该手机号已经在你的联系人列表中,导入接口仍会返回正确的用户对象,不会产生重复联系人

内容的提问来源于stack exchange,提问作者Gray Programmerz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:24:03