我制作了一个电报机器人来管理电报组,但是此过滤器仅检查管理员状态:
float an = (i + (1 / 2)) * ((pow(R, 2))*nz*kn/ ((pow(nr, 2))* Z);
我需要检查管理员权限。例如:对于使用命令!ban,您需要禁止用户权限。
答案 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)