@forrestgump1994

Как дать админку в телеграмм чате с помощью бота?

Столкнулся с недочётом разработчиков API.

Существует метод позволяющий боту добавлять и модерировать полномочия администраторов. В этом методе, через запятую, передаются атрибуты прав которые назначаются администратору. По иронии судьбы официальное приложение телеграмм позволяет назначать администраторов не выдавая им ни одного права модерирования. Я попытался сформировать запрос используя метод не передавая в него ни одного атрибута и меня ждал крах и разочарование.

promoteChatMember(chat_id, user_id) возвращает True и отбирает у user_id все права и статус администратора.

Суть:
Не передавая в него ниодного атрибута мы по сути лишаем пользователя статуса админа. В моём случае крайне важно назначать администратора без прав. Я планировал выдавать кастомные тайтлы для админов. К сожалению данный метод применим только к администраторам.

Я попробовал обойти это при помощи такой схемы:

1.) promoteChatMember(chat_id, user_id, can_pin_messages = True) - назначаем админа с правом "закреплять сообщения"
2.) restrictChatMember(chat_id, user_id, can_pin_messages = False) - забираем право у "пользователя"
В итоге этот метод также отбирает админ статус.

У кого есть идеи как это можно обойти?
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
work_jabir
@work_jabir
По иронии судьбы официальное приложение телеграмм позволяет назначать администраторов не выдавая им ни одного права модерирования.

Неверное утверждение. При выдачи «админки», выключив все права, у нового администратора остаётся разрешение на игнорирование медленного режима, просмотра журнала событий, видение анонимных администраторов и прочие плюшки.

То же самое вы можете реализовать кодом, передав True только параметру can_manage_chat.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@OoU
bot.restrictChatMember(chat_id, user_id, 
                       until_date=None, 
                       can_send_messages=False, 
                       can_send_media_messages=False, 
                       can_send_other_messages=False, 
                       can_add_web_page_previews=False)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Фаст Софт Санкт-Петербург
от 150 000 до 180 000 ₽
от 250 000 ₽
Sibdev Красноярск
от 120 000 до 180 000 ₽