Sep 29

Récemment, on m’a parlé d’un site Web qui permet de gérer le suivi de ses séries préférées (télévisées ou sur le web) :

  • Ajouter les séries que l’on suit
  • Marquer les épisodes que l’on a vus
  • Connaitre la sortie des prochains épisodes
  • Partager des séries avec ses amis

Ce site est aussi bien accessible depuis un navigateur Web que depuis des applications dédiées, tant sur téléphones que sur PC, …

Les applications sont nombreuses car une API simple, efficace et complète est disponible pour accéder aux fonctionnalités du site.

BetaSeries

BetaSeries

Évidemment, je n’ai pas pu résister à la tester en utilisant mon Delphi :)


Afin de pouvoir utiliser l’API, il faut commencer par récupérer une clé depuis cette page.

Ensuite, on peut très facilement accéder aux données :

  • publiques : où seule la clé API est nécessaire
  • privées : où la clé et un jeton sont nécessaires

Pour récupérer le jeton nécessaire aux données privées, il suffit d’envoyer une requête avec un identifiant et un mot de passe en plus de la clé API :

GET https://api.betaseries.com/members/auth.xml?key=<clé API>&login=<identifiant>&password=<md5 du mot de passe>

En Delphi, on peut aisément le réaliser en utilisant la méthode GET d’un composant TIdHTTP.

Si vous n’avez pas encore osé franchir le premier pas et vous lancez dans le développement d’une application, vous pouvez éventuellement télécharger ce projet qui illustre comment accéder à ces données. Puisqu’il est développé avec FireMonkey, il est aussi bien utilisable sur un PC que sur un Mac. ;)

L’interface ressemble à ceci :

Sous Windows

Sous Windows

Sous Mac

Sous Mac

Idée Dans la partie conception, j’ai modifié les propriétés :

  • DOMVendor du TXMLDocument pour utiliser ADOM XML v4 afin d’être aussi bien compatible sur PC que sur Mac.
  • Request/UserAgent du TIdHTTP comme cela est préconisé dans la documentation de l’API.

Dans le code, vous trouverez entre autres, comment :

  • encoder le mot de passe en MD5 (IdHashMessageDigest, idHash)
1
2
3
4
5
6
7
8
function TfrmMain.MD5(const text: string) : string;
var
  md5: TIdHashMessageDigest5;
begin
  md5    := TIdHashMessageDigest5.Create;
  Result := md5.HashStringAsHex(text);
  md5.Free;
end;
  • récupérer des données
1
2
3
4
5
6
7
8
procedure TfrmMain.GetBSData(sURL: string);
begin
  XMLDocResponse.Active   := False;
  XMLDocResponse.XML.Text := IdHTTPBetaSeries.Get(sURL);             // Récupération des données
  XMLDocResponse.Active   := True;

  mResponse.Text          := FormatXMLData(XMLDocResponse.XML.Text); // Formatage et affichage des données
end;
  • exploiter le XML téléchargé
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TfrmMain.cbtnConnectClick(Sender: TObject);
begin
  GetBSData('https://api.betaseries.com/members/auth.xml?' + USER_LOGIN_PARAM + String(HTTPEncode(AnsiString(edtUsername.Text))) + '&' + USER_PWD_PARAM + MD5(edtPassword.Text) + '&' + API_KEY_PARAM + edtAPIKey.Text);

  // root / member / token
  sToken := XMLDocResponse.DocumentElement.ChildNodes['member'].ChildNodes['token'].Text;
  if sToken <> '' then
  begin
    edtUsername.Text := XMLDocResponse.DocumentElement.ChildNodes['member'].ChildNodes['login'].Text;

    SetEnabled(True);
  end;
end;

Si cela vous a convaincu, vous pouvez donc télécharger ce projet ou directement consulter la documentation de l’API. ;)

Vous pourrez ensuite consulter vos statistiques depuis le site web :

Statistiques API BetaSeries

Statistiques API BetaSeries

 

Ce projet a été développé avec Embarcadero Delphi XE2.

Développé en Delphi

Share

Lien permanent vers API de BetaSeries Rédigé par Whiler \\ Tags : , ,

Laisser une réponse

(requis)

(requis)

*

;) (lol) (y) |-( (hi) 8-) (angel) :s (clap) (bow) (tmi) (:| plus »

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.