Error : string(5102) "
Waking up
To keep Glitch fast for everyone, inactive projects go to sleep and wake up on request. ;
my website https://amalarilk.free.nf/connexion.php
Request : amalarilk.free.nf/discord_callback.php
Code discord_callback.php:
<?php
require_once 'config.php';
session_start();
// Fonction pour obtenir l'IP du client
function get_client_ip() {
return $_SERVER['REMOTE_ADDR'] ?? 'IP inconnue';
}
// Fonction pour réveiller le projet Glitch
function ping_glitch_project($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
curl_close($ch);
}
if (isset($_GET['code'])) {
$code = $_GET['code'];
$client_id = 'my client id';
$client_secret = 'my secret client';
$redirect_uri = 'https://amalarilk.free.nf/discord_callback.php';
// Réveille le projet Glitch
ping_glitch_project('https://heady-rowan-woodwind.glitch.me/');
// Utilise l'URL du proxy Glitch pour obtenir le token
$url = 'https://heady-rowan-woodwind.glitch.me/discord/token';
$data = [
'client_id' => $client_id,
'client_secret' => $client_secret,
'grant_type' => 'authorization_code',
'code' => $code,
'redirect_uri' => $redirect_uri,
];
function make_post_request($url, $data) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/x-www-form-urlencoded']);
$response = curl_exec($ch);
if (curl_errno($ch)) {
die('Erreur cURL lors de la requête POST: ' . curl_error($ch));
}
curl_close($ch);
return $response;
}
$result = make_post_request($url, $data);
var_dump($result);
$result = json_decode($result, true);
if (isset($result['error'])) {
die('Erreur dans la réponse: ' . $result['error']);
}
if (!isset($result['access_token'])) {
die('Jeton d\'accès manquant dans la réponse.');
}
$access_token = $result['access_token'];
// Utilise l'URL du proxy Glitch pour récupérer les informations utilisateur
$url = 'https://heady-rowan-woodwind.glitch.me/discord/user';
function make_get_request($url, $access_token) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $access_token
]);
$response = curl_exec($ch);
if (curl_errno($ch)) {
die('Erreur cURL lors de la requête GET: ' . curl_error($ch));
}
curl_close($ch);
return $response;
}
$user = make_get_request($url, $access_token);
$user = json_decode($user, true);
if (isset($user['error'])) {
die('Erreur lors de la récupération des informations utilisateur: ' . $user['error']);
}
if (!isset($user['id']) || !isset($user['username'])) {
die('Erreur lors de la récupération des informations utilisateur : ' . json_encode($user));
}
$ip_address = get_client_ip();
// Préparez et exécutez votre requête d'insertion dans la base de données
$sql = "INSERT INTO users (discord_id, username, email, avatar, discriminator, ip_address) VALUES (?, ?, ?, ?, ?, ?)";
$stmt = $conn->prepare($sql);
if (!$stmt) {
die('Erreur lors de la préparation de la requête : ' . $conn->error);
}
$stmt->bind_param("ssssss", $user['id'], $user['username'], $user['email'], $user['avatar'], $user['discriminator'], $ip_address);
if (!$stmt->execute()) {
die('Erreur lors de l\'exécution de la requête : ' . $stmt->error);
}
$_SESSION['user_id'] = $conn->insert_id;
header('Location: panel.php');
exit();
} else {
echo "Code non trouvé dans la redirection OAuth2.";
}
?>
my glitch project : https://heady-rowan-woodwind.glitch.me
Code glitch project : server.js :
const express = require('express');
const cron = require('node-cron');
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware pour analyser les corps de requête JSON
app.use(express.json());
// Route d'accueil
app.get('/', (req, res) => {
res.send('<h1>Bienvenue sur mon API</h1><p>Utilisez cette API pour interagir avec.</p>');
});
// Route pour gérer les requêtes Discord
app.post('/discord', (req, res) => {
res.send('Requête envoyée à');
});
// Démarrer le serveur
app.listen(PORT, () => {
console.log(`Server is running on port ${PORT}`);
});
// Tâche cron qui s'exécute toutes les minutes
cron.schedule('* * * * *', () => {
console.log('Cette tâche s\'exécute chaque minute');
// Ici, tu peux ajouter la logique que tu souhaites exécuter
});