Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- include_once("config.php");
- //---Author : [Clinche]
- //---Date 14/10/2022
- //TODO: wait for 42 to fix client_credentials
- function api42_get_bot_token(){
- global $ft_uid, $ft_secret;
- $url = "https://api.intra.42.fr/oauth/token";
- $postParams = [
- 'grant_type' => "client_credentials",
- 'client_id' => $ft_uid,
- 'client_secret' => $ft_secret
- ];
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
- $reponse = curl_exec($ch);
- curl_close($ch);
- $data = json_decode($reponse);
- var_dump($data);
- $token = $data->access_token;
- return ($token);
- }
- function api42_get_tokens($code, $discorduid){
- global $ft_uid, $ft_secret, $ft_url;
- $ft_url = $ft_url."?uid=".$discorduid;
- $url = "https://api.intra.42.fr/oauth/token";
- $postParams = [
- 'grant_type' => "authorization_code",
- 'client_id' => $ft_uid,
- 'client_secret' => $ft_secret,
- 'code' => $code,
- 'redirect_uri'=> $ft_url
- ];
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
- $reponse = curl_exec($ch);
- curl_close($ch);
- $data = json_decode($reponse);
- $token = $data->access_token;
- $sectoken = $data->refresh_token;
- $tokens = array( 'token' => $token, 'refresh_token' => $sectoken );
- return ($tokens);
- }
- function api42_ref_tokens($reftoken, $discorduid){
- global $ft_uid, $ft_secret, $ft_url;
- $ft_url = $ft_url."?uid=".$discorduid;
- $url = "https://api.intra.42.fr/oauth/token";
- $postParams = [
- 'grant_type' => "refresh_token",
- 'client_id' => $ft_uid,
- 'client_secret' => $ft_secret,
- 'refresh_token' => $reftoken,
- 'redirect_uri'=> $ft_url
- ];
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $postParams);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
- $reponse = curl_exec($ch);
- curl_close($ch);
- $data = json_decode($reponse);
- $token = $data->access_token;
- $sectoken = $data->refresh_token;
- $tokens = array( 'token' => $token, 'refresh_token' => $sectoken );
- return ($tokens);
- }
- function api42_do_request($endpoint, $token)
- {
- $url = "https://api.intra.42.fr{$endpoint}";
- $curl = curl_init($url);
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- $headers = array(
- "Authorization: Bearer ".$token,
- );
- curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
- $resp = curl_exec($curl);
- curl_close($curl);
- $data = json_decode($resp);
- return ($data);
- }
- function extract_cursus_from_api($apireq){
- foreach ($apireq->cursus_users as $item)
- {
- if ($item->cursus->id == 21)
- return $item;
- }
- error_log('error while fetching cursuses');
- echo('oops');
- die();
- }
- ?>
Advertisement
Advertisement