#python #discord #discord.py
#python #Discord #discord.py
Вопрос:
Я использовал discord.py создать бота, который хранит идентификаторы пользователей в своей базе данных для их идентификации, но я не могу понять, как получить аватар конкретного пользователя, просто используя его идентификатор. Я искал и нашел что-то вроде этого — Client.get_user() но у меня это не работает, поскольку я не мог понять, что это работает из документации. Есть ли какой-либо способ, которым я могу получить строку идентификатора пользователя из моей базы данных и передать ее через функцию, чтобы получить аватар этого пользователя и использовать его во внедрении?
Я нашел еще один вопрос в StackOverflow, подобный моему, но решение в этом тоже не работает для меня.
Ответ №1:
Согласно статье, вы получаете данные пользователя id
и запрашиваете данные аватара пользователя. Это выглядит как string
. Вот пример ответа JSON на запрос:
{
"id": "80351110224678912",
"username": "Nelly",
"discriminator": "1337",
"avatar": "8342729096ea3675442027381ff50dfe",
"verified": true,
"email": "nelly@discord.com",
"flags": 64,
"premium_type": 1,
"public_flags": 64
}
Теперь, когда вы получаете это: "avatar": "8342729096ea3675442027381ff50dfe"
, вы знаете, что данные аватара являются 8342729096ea3675442027381ff50dfe
. После этого вы будете использовать базовый URL-адрес изображения для изображений: https://cdn.discordapp.com/
.
Чтобы запросить изображение, вы должны выбрать формат (jpg, GIF, png и т.д.). Итак, ваш последний запрос должен быть:
https://cdn.discordapp.com/avatars/{user_id}/{user_avatar}.png
где user_id
и user_avatar
— переменные, которые необходимо изменить. Например:
https://cdn.discordapp.com/avatars/80351110224678912/8342729096ea3675442027381ff50dfe.png
Ответ №2:
Вы можете использовать user = discord.utils.get(ctx.guild.members, id='id that you get from database(must be integer)')
, затем вы можете получить аватар с помощью user.avatar_url
. Вот пример, как это сделать:
user_id = "get the user id from database"
user = discord.utils.get(ctx.guild.members, id=int(user_id))
avatar = user.avatar_url