Я пишу бота с интерфейсом Discord: он подключен к более чем одному серверу (гильдии), и в настоящее время мне нужна система аутентификации, чтобы ограничить его использование.
Я думал, что смогу получить все роли пользователей и проанализировать их позже, когда это необходимо. Я так и сделал:
Код: Выделить всё
@client.event
async def on_ready():
...
for guild in client.guilds:
for member in guild.members:
for role in member.roles:
if role.name == "Test":
print("USER_ID: %d - ROLE: %s" % (member.id, role.name))
Итак, мой вопрос: есть ли простой способ проверить на лету роли пользователей во взаимных гильдиях при получении сообщения?
Прокручивая официальный API, единственный способ получить взаимные гильдии пользователей - это профиль(), но как бот я получаю запрещенную ошибку, как говорит API.
Код: Выделить всё
@client.event
async def on_message(message):
...
profile = await message.author.profile()
Код: Выделить всё
discord.errors.Forbidden: FORBIDDEN (status code: 403): Bots cannot use this endpoint
Мне нужно проверять роли пользователей даже в личных сообщениях, поэтому необходимо получить взаимные_гильдии
Подробнее здесь: https://stackoverflow.com/questions/558 ... py-rewrite
Мобильная версия