Bonjour,
Je voudrais que les utilisateurs de mon site se connecte via leur compte Discord.
J'ai créer une application
Documentation discord Oauth2:
https://discord.com/developers/docs/topics/oauth2
donc j'ai ma page 'http://monsite/index.php' avec le bouton login.
<a href="https://discordapp.com/api/oauth2/authorize?client_id=12316489832164315&redirect_uri=http://monsite/login.php&response_type=code&scope=identify+email">Login</a>
Le bouton login redirige vers la demande d'autorisation Discord qui renvoie à "http://monsite/login.php".
l'autorisation transmet '?code=frhzfkj5165ejhfzjehfe'.
La page 'http://monsite/login.php'
$code = $_GET["code"];
if (isset($_GET["error"])) {
echo json_encode(array("message" => "Authorization Error"));
} elseif (isset($code)) {
$redirect_uri = "login.php";
$token_request = "https://discordapp.com/api/oauth2/token";
$token = curl_init();
curl_setopt_array($token, array(
CURLOPT_URL => $token_request,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => array(
"grant_type" => "authorization_code",
"client_id" => "12316489832164315",
"client_secret" => "KJejdemJHF2KJEJNFEMFJNFE-Hub",
"redirect_uri" => $redirect_uri,
"code" => $code,
)
));
curl_setopt($token, CURLOPT_RETURNTRANSFER, true);
$resp = json_decode(curl_exec($token));
curl_close($token);
if (isset($resp->access_token)) {
$access_token = $resp->access_token;
$info_request = "https://discordapp.com/api/users/@me";
$info = curl_init();
curl_setopt_array($info, array(
CURLOPT_URL => $info_request,
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer {$access_token}"
),
CURLOPT_RETURNTRANSFER => true
));
$user = json_decode(curl_exec($info));
curl_close($info);
echo "<h1>Hello, {$user->username}#{$user->discriminator}.</h1><br><h2>{$user->id}</h2><br><img src='https://discordapp.com/api/v6/users/{$user->id}/avatars/{$user->avatar}.jpg' /><br><br>Dashboard Token: {$access_token}";
} else {
echo json_encode(array("message" => "Authentication Error"));
}
} else {
echo json_encode(array("message" => "No Code Provided"));
}
le page affiche {"message":"Authentication Error"}.
Plein de recherche est rien trouvé pour m'aidé.
Sa bloque à l'envoie du code pour obtenir le token.
Merci de votre aide.
Bonne journée.
Afficher la suite