Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_wp_footnotes_kses_init' not found or invalid function name in /home/clients/d53f41ae2001453fbced93bf985d42c7/web/wp-includes/class-wp-hook.php on line 307

Warning: call_user_func_array() expects parameter 1 to be a valid callback, function '_wp_footnotes_kses_init' not found or invalid function name in /home/clients/d53f41ae2001453fbced93bf985d42c7/web/wp-includes/class-wp-hook.php on line 307
API BetaSeries – Yvonnou Théo }
Yvonnou Théo

Ingénieur d'étude et développement

Infotel

Développeur Java

Yvonnou Théo

Ingénieur d'étude et développement

Infotel

Développeur Java

Articles

API BetaSeries

19 février 2020 API
API BetaSeries

Comment accéder aux statistiques d’un compte betaseries et les afficher sur son site grâce à l’api BetaSeries.

Récupération des accès

Pour accéder à l’API de Betaserie il vous faudra :

1. Obtenir la clé api -> faire la demande sur le site de BetaSeries.

2. Obtenir l’ID de votre compte -> utiliser la console ici et faire la requête suivante :

(Pour obtenir votre mot de passe en md5 vous pouvez utiliser ce site).

Utilisation de Curl pour réaliser la requête

Pour effectuer la requête à l’API j’utilise cette méthode permet de récupérer les données grâce à l’url fournit en paramètre.

// Fonction qui fait la requête à l'api
function CallAPI($method, $url, $data = false) {     
	$curl = curl_init();      
	switch ($method)     {         
		case "POST":             
			curl_setopt($curl, CURLOPT_POST, 1);              
			if ($data) curl_setopt($curl, CURLOPT_POSTFIELDS, $data);             
			break;         
		case "PUT":             
			curl_setopt($curl, CURLOPT_PUT, 1);             
			break;        
		default:             
			if ($data) $url = sprintf("%s?%s", $url, http_build_query($data));     
	}      
	curl_setopt($curl, CURLOPT_URL, $url);     
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);      
	$result = curl_exec($curl);      
	curl_close($curl);     
	return json_decode($result, true); 
}

Récupération des données du membre

Pour récupérer les données du membre on utilise l’url suivante :

https://api.betaseries.com/members/infos?key=votre cle api&id=id du compte&summary=true 

Voici les éléments récupérables :

member: member_infos*
member_infos:
  - id: integer
  - fb_id: integer
  - login: string
  - xp: integer
  - cached: integer
  - avatar: url
  - profile_banner: url
  - in_account: boolean
  - subscription: integer
  - stats:
     - friends: integer
     - shows: integer
     - seasons: integer
     - episodes: integer
     - comments: integer
     - progress: integer
     - episodes_to_watch: integer
     - time_on_tv: integer
     - time_to_spend: integer
     - movies: integer
     - badges: integer
     - member_since_days: integer
     - friends_of_friends: integer
     - episodes_per_month: integer
     - favorite_day: string
     - five_stars_percent: integer
     - four-five_stars_total: integer
     - streak_days: integer
     - favorite_genre: string
     - written_words: integer
     - without_days: integer
     - shows_finished: integer
     - shows_current: integer
     - shows_to_watch: integer
     - shows_abandoned: integer
     - movies_to_watch: integer
     - time_on_movies: integer
  - options:
    - downloaded: boolean
    - notation: boolean
    - timelag: boolean
    - global: boolean
    - specials: boolean
    - episodes_tri: integer
    - friendship: string

Un exemple avec la récupération du nombre d’épisodes vus :

function getNbEpisodeVu(){
        // Recuperation des donnees
	$result = CallAPI("", "https://api.betaseries.com/members/infos?key=votre cle api&id=id du compte&summary=true");  
	return $result['member']['stats']['episodes'];    
}

Et un autre exemple avec le temps passé devant la TV :

function getAllTimeLostInFrontOfTvFR(){
    $result = CallAPI("", "https://api.betaseries.com/members/infos?key=votre cle api&id=id du compte&summary=true"); 
    $sec = $result['member']['stats']['time_on_tv'] * 60;

	$date1 = new DateTime("@0"); //starting seconds
	$date2 = new DateTime("@$sec"); // ending seconds
	$interval =  date_diff($date1, $date2); //the time difference
	
	$monthleft = $interval->format('%m');
	$daysleft = $interval->format('%d');
	$hoursleft = $interval->format('%h');
	$minleft = $interval->format('%i');

	return $monthleft 
		. ' mois' 
		. ', ' 
		. $daysleft 
		. ($daysleft > 1 ? ' jours' : ' jour') 
		. ', ' 
		. $hoursleft 
		. ($hoursleft > 1 ? ' heures et ' : ' heure et ') 
		. $minleft
		. ($minleft > 1 ? ' minutes devant la TV.' : ' minute devant la TV.');

Récupération des données des actualités du membre

Pour récupérer les news du membre on utilise l’url suivante :

https://api.betaseries.com/timeline/member?key=votre cle api&id=id du compte&summary=true 

Voici les éléments récupérables :

events: event*
event:
  - id: integer
  - type: string
  - ref: string # Vouée à disparaître
  - ref_id: integer
  - user: string
  - user_id: integer
  - html: html
  - date: datetime
  - comments: integer
  - first_comments: comment*

Un exemple avec l’affichage du dernier episode vu :

function getLastEventEN(){
	$result = CallAPI("", "https://api.betaseries.com/timeline/member?key=votre cle api&id=id du compte&summary=true "); 
    
	for ($i=0; $i<10; $i++) {
		if ($result['events'][strval($i)]['type'] == "markas") {
			$res = str_replace("vient de regarder ", "Last episode seen :", $result['events'][strval($i)]['html']);
			return $res;
		}
	} 
}

Dans cette méthode je récupère le premier évèment de type markas dans les 10 derniers évènements du membre. Le type markas correspond à un épisode marqué comme vu.

Résultat

Voici un exemple d’affichage de ces données :

Taggs: