Tutoriel | Comment obtenir des statistiques Discord avec PHP sur mon site web !

Etape 1 : Liaison de l’API de votre Discord

Vous devez donc récupérer votre API JSON de votre application disponible dans la section widgets , celle de votre serveur en question.



Etape 2 : Création de votre fichier discord.php

Ensuite il faut réaliser le fichier source de votre discord en php avec de simples codes de récupérations php, à vous de réaliser l’optimisation du code à votre sauce, attention le code ci-dessous doit être en tête de d’header sinon il ne fonctionnera pas !

 
<?php 

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

// Quelques exemples de variables 
$membersCount = count($JSON['members']); 
$nomduserveur = ($JSON['name']); 
$invitation = ($JSON['instant_invite']); 

?> 


Etape 3 : Afficher vos variables $array



À partir de ce moment-là c’est très facile de réaliser l’affichage de vos fonctions $array en PHP, attention néanmoins sur un serveur le code peut être assez lourd au chargement de votre site, voici un exemple pour afficher

# Le nom de votre Discord
# Le nombre d’utilisateurs en ligne
# Un lien d’invitation permanent

Bienvenue sur le Discord : <?php echo $nomduserveur ;?>

Actuellement : <?php echo $membersCount ;?> en ligne

<a href="<?php echo $invitation ; ?>"> Rejoindre </a>


Etape 4 BONUS : Afficher vos variables plus en détails

Vous avez quelques bases en PHP, avec cet exemple vous pourrez afficher ceci :

#Les membres en ligne, occupé ou absent.
#Les Pseudonymes
#Les Avatars
#L’identifiant Discord sous la forme #number
#Le jeu en cours

Pour ma part j’utilise Bootstrap 4.1.3 sur cet exemple, à vous d’adapter votre code pour vos envies.

<?php
             
//echo '<pre>' . var_export($JSON, true) . '</pre>';// Pour afficher les valeurs

$members = $JSON['members'];
foreach ($members as $member){
 
  	$member_status = $member["status"];
    $current_game = $member['game']['name'];
  ?> 
          
 
      
        <div class="media text-muted pt-3 discord-usercase status-<?php echo $member_status?>" >
          <img alt="32x32" class="mr-2 rounded" src="<?php echo $member['avatar_url']; ?>" data-holder-rendered="true" style="width: 80px; height: 80px;">
          <div class="media-body p-2 mb-0 small lh-125  border-gray">
            <div class="d-flex justify-content-between align-items-center w-100 ">
              <strong class="user-display MB-white"><?php echo $member["username"] . ""; ?></strong>
               
                <div class="status-<?php echo $member_status?>"><?php echo get_discord_member_french_status($member_status); ?></div>
            </div>
            <span class="d-block"> #<?php echo $member['discriminator']; ?></span>
                <?php if(!empty($current_game)):?>
                    <span class="d-block"> <i class="fal fa-gamepad"></i> Joue  a <span class="MB-cryo"><?php echo $current_game; ?></span></span>
                <?php endif; ?>
  
          </div>
        </div>
         
<?php
}       
function get_discord_member_french_status($member_status){
  $status_list = array(
    "online" => "En ligne",
    "idle" => "Absent",
    "dnd" => "Occupé"
  );
  
  if(isset($status_list[$member_status])){
    return $status_list[$member_status];
  }

}

?>

Merci d’avoir suivi mon premier tutoriel, n’hésitez pas à partager mon code, ainsi que de me payer une bière !

Démonstration
Télécharger les sources ( 1€ )
Dons Libres