Как мне получить аватар конкретного пользователя, используя его идентификатор пользователя с помощью discord, py

#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