Как получить статус пользователя из discord API (URL)

#python #api #discord #discord.py

#python #API #Discord #discord.py

Вопрос:

Я пытаюсь получить статус пользователя без использования какого-либо языка discord API (например. discord.py discord.js ). Проблема, с которой я сталкиваюсь, заключается в том, что пользователь из discord API не возвращает статус пользователя, как я могу получить эту информацию?

 import urllib.request as req

headers = {'Authorization': f"Bot "   "YOUR BOT TOKEN"}

with req.urlopen(req.Request("https://discord.com/api/users/<USER ID>", headers = headers )) as get:
    print(get.read())

# Now getting the user through a server
with req.urlopen(req.Request("https://discord.com/api/guilds/<GUILD ID>/members/<USER ID>", headers = headers)) as get:
    print(get.read())
  

Оба при запуске возвращают информацию о пользователях, такую как идентификатор, имя и т.д. Но не указывайте статус пользователя, который я пытаюсь получить

Комментарии:

1. всегда помещайте полное сообщение об ошибке (начинающееся со слова «Traceback») в вопрос (не комментарий) в виде текста (не скриншота). Есть и другая полезная информация.

2. API обычно не заботятся о User Agent но я не понимаю, почему вы используете ссылку в User Agent заголовке — это неправильный метод для отправки авторизации.

3. Ошибки нет. Я отредактировал его, чтобы сказать, что API возвращает информацию о пользователях, такую как ID, имя и т.д. которые не включают статус пользователя, который я пытаюсь получить. Но да, пользовательский агент бессмыслен. Я использовал URL, потому что в API указано discord.com/developers/docs /…

4. какой статус? Вы проверили в документации, отправляет ли его Discord? Может быть, он никогда не отправляет его? Или, может быть, для этого нужны какие-то особые привилегии?

5. Как в статусе пользователя (например, онлайн, оффлайн …). Потому что, если я прав, языки API используют один и тот же discord API. Если это так, и они могут получить статус, то должен быть способ сделать это без них?

Ответ №1:

Вы должны использовать шлюз для получения статуса пользователей, поскольку discord не отправляет их в конечные точки get member / user, вы можете увидеть событие здесьhttps://discord.com/developers/docs/topics/gateway#presence-update