管理员权限检查(签名)

时间:2020-04-24 23:36:34

标签: python python-3.x telegram-bot python-telegram-bot

我制作了一个电报机器人来管理电报组,但是此过滤器仅检查管理员状态:

float an = (i + (1 / 2)) * ((pow(R, 2))*nz*kn/ ((pow(nr, 2))* Z);

我需要检查管理员权限。例如:对于使用命令!ban,您需要禁止用户权限。

1 个答案:

答案 0 :(得分:0)

bot.get_chat_member(chat_id, bot_id)将解决问题。

全息图documentation说:

返回:成功返回一个ChatMember对象

Telegram API documentation关于ChatMember的看法:

...

can_edit_messages 布尔型可选。仅管理员。是的,如果管理员可以编辑其他用户的消息并可以固定消息;仅限频道

can_delete_messages 布尔型可选。仅管理员。是的,如果管理员可以删除其他用户的邮件

can_restrict_members 布尔型可选。仅管理员。是的,如果管理员可以限制,禁止或取消禁止聊天成员

...

这里是一个例子:

@dp.message_handler(commands=['rights'])
async def myrights(message: types.Message):
    member = await bot.get_chat_member(message.chat.id, TOKEN.split(":")[0])
    for x in member:
        print(x)

当我在组上写/rights@BOTUSERNAME时,它的输出(在我的终端上)

('user', {'id': xxxxxxxxxx, 'is_bot': True, 'first_name': 'xxxxx', 'username': 'xxxxx'})
('status', 'administrator')
('can_be_edited', False)
('can_change_info', True)
('can_delete_messages', True)
('can_invite_users', True)
('can_restrict_members', True)
('can_pin_messages', True)
('can_promote_members', False)