C#中使用WTelegramClient如何删除Telegram账号头像
C# 基于WTelegramClient删除Telegram账号头像实现方案
WTelegramClient完全对齐Telegram原生API能力,删除账号头像不需要额外魔改,按以下流程调用即可:
- 前置条件:你已经完成客户端初始化、手机号验证码登录流程,持有已授权的
WTelegram.Client实例,以及登录成功后返回的当前登录用户User对象。 - 第一步:拉取当前账号的头像列表
// 拉取当前账号下最多100张历史头像,普通用户场景可覆盖全部头像数据 var userPhotos = await client.Photos_GetUserPhotos( user_id: currentLoggedInUser.Id, offset: 0, max_id: 0, limit: 100 );
- 第二步:构造待删除头像的参数,调用删除接口
如果你只需要删除当前正在展示的头像,取返回列表的第一项即可;如果需要清空所有历史头像,遍历整个userPhotos.Photos列表构造参数传入即可。
// 示例:删除当前生效的头像 var targetPhoto = userPhotos.Photos.First() as Photo; var deleteInput = new InputPhoto { Id = targetPhoto.Id, AccessHash = targetPhoto.AccessHash, FileReference = targetPhoto.FileReference }; // 执行删除 await client.Photos_DeletePhotos(new List<InputPhoto> { deleteInput });
常见坑点:如果接口返回
FILE_REFERENCE_EXPIRED错误,重新调用一次Photos_GetUserPhotos拿到最新的FileReference再提交删除就行,这是Telegram官方API的文件引用有效期机制,不是代码bug。
- 校验结果:删除后重新拉取一次当前用户信息,若用户对象的
Photo字段为空/默认头像标识,即代表删除成功。
内容的提问来源于stack exchange,提问作者Isfandiyor Akbarov
相关产品推荐
相关产品推荐

