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

TeleBot中修改群成员管理员状态失败的问题求助

Telegram群聊机器人修改成员状态失败的解决办法

你遇到的问题核心在于:get_chat_member方法是只读的,它只是用来获取群成员的当前状态和权限,返回的是本地数据对象——修改这个对象的属性不会同步到Telegram服务器,自然不会改变成员的实际状态。

正确的解决方式

要修改群成员的权限(比如提升为管理员),必须使用Telegram Bot API提供的专门修改方法,而不是直接修改get_chat_member返回的对象。以下是修正后的代码:

import telebot
from telebot import types

@bot.message_handler(commands=['ban'])
def ban(message):
    # 可选:获取当前成员信息用于确认初始状态
    member = bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id)
    print(member)

    # 使用promote_chat_member提升为管理员并设置权限
    bot.promote_chat_member(
        chat_id=message.chat.id,
        user_id=message.from_user.id,
        can_edit_messages=True,
        can_delete_messages=True,
        can_restrict_members=True
    )

    # 再次获取成员信息,确认修改生效
    updated_member = bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id)
    print(updated_member)

关键说明

  • promote_chat_member是专门用于提升群成员为管理员的API方法,传入对应的权限参数后,会直接向Telegram服务器发送修改请求,真正改变成员的权限状态。
  • 机器人自身必须具备对应的操作权限:比如机器人需要是群管理员,且拥有"提升其他成员为管理员"的权限,否则会执行失败。
  • 如果是要限制普通成员的权限(而非提升为管理员),则使用restrict_chat_member方法。

内容的提问来源于stack exchange,提问作者Темирлан Омарханов

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:32:09