Как дать права, редактировать сообщения пользователя?
Подскажите, как на Aiogram, дать права админу, в группе телеграм, у бота есть всем права, редактировать текстовые сообщение и подпись к фото видео, как это прописать.
Делал так, но все равно, отредактировать, не могу.
await bot.edit_message_caption(message.chat.id, message.message_id)
await message.edit_caption(message.chat.id, message.message_id, parse_mode='html')
await message.edit_text(message.chat.id, message.message_id)
Как прописать, в
@dp.message_handler(content_types=['text', 'photo', 'video'])
async def get_handler(message: types.Message):
Прописал так, но всё равно, не редактирует, нет изменить, сообщение пользователя, в группе.
@dp.message_handler(content_types=['text', 'photo', 'video'])
async def get_handler(message: types.Message):
user_id = message.from_user.id
username = message.from_user.username
last_name = message.from_user.last_name
name = message.from_user.full_name
chat_id = message.chat.id
if message.text:
#await message.edit_text(message.chat.id, message.message_id)
await message.edit_text(chat_id=message.chat.id, message_id=message.message_id)
elif message.photo:
await bot.edit_message_caption(message.chat.id, message.message_id)
#await message.edit_caption(message.chat.id, message.message_id, parse_mode='html')
elif message.video:
await bot.edit_message_caption(message.chat.id, message.message_id)
#await message.edit_caption(message.chat.id, message.message_id, parse_mode='html')
return
В документации написано can_edit_messages Верно, если администратор может редактировать сообщения других пользователей и может закреплять сообщения; только каналы.
Как это прописать?
Нужен, этот class
class ChatAdministratorRights(base.TelegramObject):
"""
Represents rights of an administrator in a chat.
Source: https://core.telegram.org/bots/api#chatadministratorrights
"""
is_anonymous: base.Boolean = fields.Field()
can_manage_chat: base.Boolean = fields.Field()
can_delete_messages: base.Boolean = fields.Field()
can_manage_video_chats: base.Boolean = fields.Field()
can_restrict_members: base.Boolean = fields.Field()
can_promote_members: base.Boolean = fields.Field()
can_change_info: base.Boolean = fields.Field()
can_invite_users: base.Boolean = fields.Field()
can_post_messages: base.Boolean = fields.Field()
can_edit_messages: base.Boolean = fields.Field()
can_pin_messages: base.Boolean = fields.Field()
И еще прочитал, мне нужен promote_chat_member
Прописал так
@dp.message_handler(content_types=['text', 'photo', 'video'])
async def get_handler(message: types.Message):
assert bot.promote_chat_member(
user_id=message.from_user.id,
chat_id = message.chat.id,
is_anonymous=True,
can_change_info=True,
can_post_messages=True,
can_edit_messages=True,
can_delete_messages=True,
can_invite_users=True,
can_restrict_members=True,
can_pin_messages=True,
can_promote_members=True,
can_manage_chat=True,
can_manage_voice_chats=True,
)
if message.text:
#await message.edit_text(message.chat.id, message.message_id)
#await message.edit_text(message.chat.id, message.message_id, parse_mode='html')
await message.edit_text(text=message.text)
elif message.photo:
#await bot.edit_message_caption(message.chat.id, message.message_id)
await message.edit_caption(message.chat.id, message.message_id, parse_mode='html')
elif message.video:
#await bot.edit_message_caption(message.chat.id, message.message_id)
await message.edit_caption(message.chat.id, message.message_id, parse_mode='html')
return
Но, теперь ошибка.
raise err(cls.text or description)
aiogram.utils.exceptions.MessageCantBeEdited: Message can't be edited
Ругается, на эту строку
await message.edit_text(text=message.text)