Status
Für weitere Antworten geschlossen.

lewnox

Neuling
Feb. 25, 2020
2
Hallo,

Ich würde gerne durch eine Discord ID das Profilbild von jemanden auf die Website packen.
Weiß jemand wie das geht? Ich weiß dass es aufjedenfall geht ohne dass ein Bot o.ä. einen Server mit dieser person teilen muss.
Das einzige was man scheinbar benötigt ist die Userid. Wäre super wenn mir jemand das erklären könnte oder auch ein Codebeispiel schicken könnte.

Mfg Lewnox
 
Lösung
Hallo Lewnox.

Wenn du mit Discord ID die Snowflake eines Nutzers meinst, gibt es einen weg. Über den Discord Tag oder gar den Namen allein jedoch nicht.
Mit der Discord API an das Profilbild zu kommen ist recht simpel, wenn man sich ein wenig mit dem Link Format von Discord auskennt.

Du findest das Profilbild eines Nutzers immer unter
https://cdn.discordapp.com/avatars/<snowflake>/<hash>

Die Snowflake hast du ohnehin. Den Hash erhälst du über die API. Dafür musst du lediglich einen GET Request an den /users/ Endpunkt der Discord API schicken.
Dieser sieht so aus:
https://discordapp.com/api/users/<snowflake>

Dass du einen API Token brauchst versteht sich vermutlich von selbst.
Wenn nicht, erstelle dir einen Bot Account...

Hadde

Curator
Nov. 1, 2017
2
1
Hallo Lewnox.

Wenn du mit Discord ID die Snowflake eines Nutzers meinst, gibt es einen weg. Über den Discord Tag oder gar den Namen allein jedoch nicht.
Mit der Discord API an das Profilbild zu kommen ist recht simpel, wenn man sich ein wenig mit dem Link Format von Discord auskennt.

Du findest das Profilbild eines Nutzers immer unter
https://cdn.discordapp.com/avatars/<snowflake>/<hash>

Die Snowflake hast du ohnehin. Den Hash erhälst du über die API. Dafür musst du lediglich einen GET Request an den /users/ Endpunkt der Discord API schicken.
Dieser sieht so aus:
https://discordapp.com/api/users/<snowflake>

Dass du einen API Token brauchst versteht sich vermutlich von selbst.
Wenn nicht, erstelle dir einen Bot Account unter Discord Developer Portal — API Docs for Bots and Developers. Anschließend in den Request Header lediglich
Authorization: Bot <Bot Token> einfügen. Weitere Infos dazu findest du auch hier.

Wenn du jetzt die ID von einem Nutzer haben willst, schickst du beispielweise folgenden Request ab:
GET https://discordapp.com/api/users/214347948316819456

Bildlich sieht das so aus:

Example GET Request for the user endpoint of the Discord API


Du erhälst nun ein JSON Objekt. Unter dem "avatar" Key findest du den vorhin erwähnten Hash. Dieser teilt dir jedoch nicht mit, welcher Dateityp das Bild ist. Das musst du also selber rausfinden. ^^
das Bild findest du dann also unter: https://cdn.discordapp.com/avatars/214347948316819456/a_bbb5b4f4e661640c7846439d12045f7d

Das ist also tatsächlich ziemlich simpel. ^^

Da ich kein PHP Entwickler bin kann ich dir keinen Code dazu geben, aber ich denke das sollte alles ziemlich klar und einfach auch in PHP zu lösen sein.
Als Bonus gibts noch den curl Command: curl -X GET -k -H 'Authorization: Bot NjgyMjIzMDQxNTQ3MDc1NTg0.XlZ36w.yaaDcONcQLkB8w-ea-jR5f6ZMsA' -i 'https://discordapp.com/api/users/214347948316819456'

Liebe Grüße Hadde

PS: Der Bot Token ist natürlich ungültig. :cat:
 
Zuletzt bearbeitet von einem Moderator:
Status
Für weitere Antworten geschlossen.

Users who are viewing this thema