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.
É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 :
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 :
Dans la partie conception, j’ai modifié les propriétés :
DOMVendor
duTXMLDocument
pour utiliserADOM XML v4
afin d’être aussi bien compatible sur PC que sur Mac.Request/UserAgent
duTIdHTTP
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 :
Ce projet a été développé avec Embarcadero Delphi XE2.
Derniers commentaires