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

解决Telegram切换用户名时的UsernameNotModifiedError问题

解决Telegram频道定期切换用户名时的UsernameNotModifiedError问题

你的核心问题有两个:一是随机用户名只在循环外生成一次,导致每次切换都用同一个值;二是随机选择时可能选中当前正在使用的用户名,触发Telegram API的重复修改错误。

解决方案思路

  1. 每次切换前先获取频道当前的用户名,排除这个值后再做随机选择,确保每次选的都是新用户名
  2. 将随机选择的逻辑放到循环内部,保证每次循环都重新生成目标用户名

修改后的完整代码

import random
import time
from telethon import TelegramClient, functions
from telethon.sessions import StringSession

# 用户名列表
username_list = ['zRRrrwx2231221s', 'bzRRrrwx2231as', 'azRRrrwx2231s']
# 频道标识(可以是用户名、ID或链接)
channel_target = 'zRRrrwx2231221s'

with TelegramClient(StringSession(ses_string), api_id, api_hash) as client:
    while True:
        try:
            time.sleep(10)
            
            # 获取频道当前的用户名
            channel_info = client.get_entity(channel_target)
            current_username = channel_info.username
            
            # 过滤掉当前用户名,生成可选的新用户名列表
            candidate_usernames = [name for name in username_list if name != current_username]
            
            # 极端情况处理(比如列表只剩一个用户名,此时没有可切换的新值)
            if not candidate_usernames:
                print("无可用新用户名,跳过本次切换")
                continue
            
            # 随机选择目标用户名
            target_username = random.choice(candidate_usernames)
            print(f"准备切换到用户名: {target_username}")
            
            # 执行用户名更新请求
            client(functions.channels.UpdateUsernameRequest(
                channel=channel_target,
                username=target_username
            ))
            print(f"用户名已成功切换为 {target_username}")
            
        except Exception as e:
            print(f"切换出错: {str(e)}")

关键修改说明

  • 把随机选择放到循环内:原代码的random_username只初始化一次,导致循环一直用同一个用户名,现在每次循环都会重新生成
  • 排除当前用户名:通过client.get_entity获取频道的实时信息,过滤掉当前正在使用的用户名,彻底避免触发UsernameNotModifiedError
  • 异常捕获:添加全局异常捕获,即使遇到其他错误(比如用户名被占用),程序也不会直接终止,而是继续执行下一次循环
  • 变量拆分:把频道标识单独提取为变量,后续修改更方便

内容的提问来源于stack exchange,提问作者Oren Sabag

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 00:34:57