Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get total number of members in Discord using PHP

Tags:

php

discord

I have a Discord servern with 1361 members and on my website I want to display a total number of joined users.

I have figured out how to get all online Members on the server using:

   <?php

    $jsonIn = file_get_contents('https://discordapp.com/api/guilds/356230556738125824/widget.json');
    $JSON = json_decode($jsonIn, true);

    $membersCount = count($JSON['members']);

    echo "Number of members: " . $membersCount;
   ?>

What should I do differently to get a total number of ALL users that have joined the server, and not just display the online members?

like image 379
iTeY Avatar asked Oct 31 '25 05:10

iTeY


1 Answers

Now, I realize I am reviving a pretty old thread here, but I figure some might still use an answer. As jrenk pointed out, you should instead access https://discordapp.com/api/guilds/356230556738125824/members.

Your 404: Unauthorized comes from the fact that you are -you guessed it- not authorized. If you have created a bot, it is fairly easy: just add a request header Authorization: Bot YOUR_BOT_TOKEN_HERE. If you use a normal Discord account, the whole problem is a bit more tricky:
You will first have to send a POST request to https://discordapp.com/api/auth/login and set the body to {"email": "EMAIL_HERE", "password": "PASSWORD_HERE"}. You will get a response with the parameter token. Save this token, you will need it later. BUT:

NEVER, UNDER ANY CIRCUMSTANCES show anyone this token, as it is equivalent to your login credentials!

With this token, you can now send a POST request to the same address: https://discordapp.com/api/auth/login, but now add the header Authorization: YOUR_BOT_TOKEN_HERE. Note the missing "Bot" at the beginning.

Also, what you mustn't forget:

If you don't add the parameter ?limit=MAX_USERS, you will only get the first guild member. Take a look here to see details.

like image 190
Schwefelhexa Avatar answered Nov 02 '25 18:11

Schwefelhexa