0

English is not my native I wrote bot for group chat. And had issue with giving new status to group member.

import telebot
from telebot import types
@bot.message_handler(commands = ['ban'])
def ban(message):

    print(bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id))
    bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id).status = 'administrator'

    bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id).can_edit_messages = True
    bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id).can_delete_messages = True
    bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id).can_restrict_members = True
    print(bot.get_chat_member(chat_id=message.chat.id, user_id=message.from_user.id))


There is method get_chat_member should change status of member from 'member' to 'administrator'. However I can't say why status doesn't change. Thanks for your attention. Waiting for any answer

pass pass pass pass

1 Answers1

0

To change the status of user you have to use promote_chat_member like this:

import telebot
from telebot import types

@bot.message_handler(commands=['ban'])
def ban(message):
    user_id = message.from_user.id
    chat_id = message.chat.id

    bot.promote_chat_member(chat_id=chat_id, user_id=user_id,
                            can_edit_messages=True,
                            can_delete_messages=True,
                            can_restrict_members=True)

    member = bot.get_chat_member(chat_id=chat_id, user_id=user_id)
    print(member)
Omid Roshani
  • 1,083
  • 4
  • 15