Informatique

Informatique (37)

samedi, 06 avril 2019 12:42
samedi, 09 mars 2019 21:30

Openfoodfact et l'annonce de Michel LECLERC

Écrit par

Michel Edouard LECLERC étai l'invité ce jeudi 7 mars, dans les fauteuils rouges de Complément d'enquête.
Au cours de son interview, en "lisant" entre les lignes, le PDG de Leclerc a annoncé l'affichage du nutriscore des aliments dans ses supermarché.

Tout le travail de Leclerc sur l'affichage des nutriccore, sera fait grâce à l'API d'OpenFoodFact, API que nous avons déjjà veu en partie sur ce blog.

Informations et résultat... à suivre

Dernière modification le samedi, 09 mars 2019 21:37
samedi, 02 février 2019 07:38

Récupérer des données de Youtube

Écrit par

La problématique :

Aujourd'hui, je vous propose d'aller "lire" des données des vidéo que vous uploadez sur youtube. Oui, je choisis désormais Youtube face à Dailymotion, pour la foule de fonctionnalités supplémentaires. En voila d'ailleurs une : récupérer des métadonnées sur votre page web, métadonnées déjà saisies sur Youtube. Pourquoi réinventer la roue, redupliquer des données, au risque que celles-ci soient erronées lors d'une malheureuse recopie avec des erreur, fautes de frappes... Non, là, on colle toutse les données dans youtube, et on va aller les rechercher.

Le service interrogé : YOUTUBE

Bon, oui le reprends le plan habituel mais vous avez déjà compris que le service que nous allons aller interroger est bel et bien Youtube. Nous n'irons pas poster des données (car je ne me suis pas encore interessé aux requêtes GET mais ca viendra sûrement un jour.)
Je n'ai pas fais de page d'exemples détaillées sur cet article mais si vous en souhaitez une, elle pourra être faite sur demande. Toutefois, j'ai quand même intégré les retours de données brutes. Mais je pense que vous savez désormais, comment extraire des données XML ou JSON facilement avec tous les exemples déjà créés.

Explications

La commande cURL est générique, elle est basée sur le modèle suivant :

curl -i -G -d "q=surfing&maxResults=25&part=snippet&key=[VOTRE_CLEF_API]" URL_DE_L'API

Voila le détail des 4 paramètres rouges cités ci-dessus :

  • q=surfing : "surfing" est le mot clef recherché pour la requete (ce que vous auriez tapé dans le champs de recherche de youtube)
  • maxresult=25 : la recherche se limite à 25 résultats, libre à vous de changer cette valeur, en gardant à l'esprit des possibles timeouts.
  • part=snippset
    Le paramètre "part" est un paramètre requis pour toute demande d'API qui récupère ou retourne une ressource. Le paramètre identifie une ou plusieurs propriétés de ressource de niveau supérieur (non imbriquées) à inclure dans une réponse d'API. Une ressource vidéo comprend les parties suivantes:
         - fragment
         - contentDetails
         - fileDetails
         - joueur
         - traitementDétails
         - enregistrementDétails
         - statistiques
         - statut
         - suggestions
         - sujetDétails
  • key=votre_clef_API. Vous l'aurez compris, c'est la clef API que vous avez demandé à Youtube et que vous devez passer ici en paramètres
  • URL_DE_L'API : Cette URL est bien une adresse web, mais il faut la voir non pas comme une page web, mais comme une chaine de caractères, qui prend effectivement la forme d'une URL, pour spécifier à l'API ce que vous souhaitez qu'elle vous retourne. Je répète, il faut vraiment voir cette chaine comme une chaine d'authentification de ce que vous demandez au service web. Toute la doc est sur le site de youtube : https://developers.google.com/youtube/v3/docs/

Et bien nous voila parés, on s'y met ?

Exemples

Voici la liste des commandes cURL testées.

1. Afficher le détail d'une vidéo : https://www.googleapis.com/youtube/v3/videos?id=kLCoFizS9xE&part=snippet%2CcontentDetails%2Cstatistics&key=[VOTRE_CLEF_API]

2. Faisons une recherche sur youtube sur un le mot clef "surfing" et récupérons les 25 premiers résultats  : https://www.googleapis.com/youtube/v3/search?q=surfing&maxResults=25&part=snippet&key=AIzaSyAwzSsXc0YVOgYag7z3rSl0tH0VmDZe1fk

3. Récupérons les information du canal (autrement appelé chaine) youtube (pour la référence du canal, aller sr la page web du canal dans les détails de la chaine) : https://www.googleapis.com/youtube/v3/channelSections?channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw&part=snippet%2CcontentDetails&key=[VOTRE_CLEF_API]

4. Affichons un thread de discussion : https://www.googleapis.com/youtube/v3/commentThreads?videoId=kLCoFizS9xE&part=snippet%2Creplies&key=[VOTRE_CLEF_API]

5. Récupérons toutes les vidéo d'une playliste : https://www.googleapis.com/youtube/v3/playlistItems?playlistId=PLBCF2DAC6FFB574DE&maxResults=25&part=snippet%2CcontentDetails&key=[VOTRE_CLEF_API]

6. Listes de lectures appartenant à la chaine youtube identifiée par le paramètre channelId de la requete : https://www.googleapis.com/youtube/v3/playlists?maxResults=25&channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw&part=snippet%2CcontentDetails&key=[VOTRE_CLEF_API]

 

7. Liste des catégories associables à une video : https://www.googleapis.com/youtube/v3/videoCategories?regionCode=US&part=snippet&key=[VOTRE_CLEF_API]

 

8 Liste des métadonnées de la vidéo passée en paramètre (champ id) : https://www.googleapis.com/youtube/v3/videos?id=Ks-_Mh1QhMc&part=snippet%2CcontentDetails%2Cstatistics&key=[VOTRE_CLEF_API]

 

Dernière modification le samedi, 02 février 2019 07:42
vendredi, 04 janvier 2019 09:46

Mes Favoris où trouver de l'info

Écrit par

Où trouver des API ?

Voici quelques annuaires d'API

Pour une fois, pas de codes, pas de détails mais un petit article dans lequel je vais recencer les sites web "annuaires" de webservces et d'API. Et ce n'est pas ca qui manque. D'ailleurs cet article risque de grandir au fil du temps. Si vous connaissez d'autres annuaires, contactez moi que je les rajoute.

 APIs.IO  https://www.programmableweb.com/  https://azuremarketplace.microsoft.com
 http://apihound.com/apifinder  https://www.getpostman.com/api-network/  https://github.com/abhishekbanthia/Public-APIs#events
 https://apilist.fun/ https://api-rest.com/ https://algorithmia.com/algorithms
https://any-api.com/ http://theapistack.com/ https://nordicapis.com/open-api-initiative-means-api-space/

Où trouver d'autres outils liés à l'utilisation des API

 Site Fonction
 https://incarnate.github.io/curl-to-php/  Cette page possède un petit programme vous permettant de "convertir" en programme PHP un appel cURL d'une API
   

Cet article sera en constante évolution

Dernière modification le samedi, 05 janvier 2019 12:47

Aujourd'hui nous allons faire un petit tour d'horizon de l'utilisation des API de Youtube, un groduit Google désormais (et oui, Youtube n'a pas toujours appartenu à Google, Google a finalisé son rachat le 9 octobre 2006)

La problématique

Youtube, comme tous les services que je vous propose ici, possède son lot d'API plutôt sympas d'ailleurs. Comme à mon habitude, je ne vous montrerai pas TOUTES les API de youtube, il y en a beaucoup, beaucoup trop pour tout détailler, mais quelques exemples qui vous permettront d'êre autonome sur l'ensemble des API proposées par ce service. Toutes ces API sont désignées par Google comme des Activités (j'en profite pour vous spécifier la terminologie exacte utilisée par la société de Larry Page) que vous pourrez retrouver sur la page des activités youtube.

Le service interrogé : youtube

Le service interrogé est donc Youtube, l'accès aux API d'interrogations s'effectue grâce à l'URL https://www.googleapis.com/youtube/v[N]/, n (sans les crochets, cela va de soit) étant un chiffre représentant la version de l'API à utiliser. A l'heure où j'écris ces lignes, n vaut 4, l'appel aux API s'effectue donc par l'URL : https://developers.google.com/youtube/v3/

Pour le reste des choses à connaître, j'aurais tendance à dire "tout est dans la doc" mais, en disant ceci, l'objet de mon article n'a plus aucun sens. Voyons donc quelques exemples afin de mieu cerner l'API. Pour l'instant, je n'ai volontairement pas effecturé d'upload de vidéo par les API mais ca viendra sûrement. Nous allons donc partir d'une vidéo existante, déjà uploadée sur Youtube, on l'identifiera bien évidemment par la référence qui est placée dans l'URL de la video sous la forme d'une chaine absconse, au hasard : UulkGrJjOM8 (finalement est-ce un hasard ?) pour la vidéo accessible par l'URL https://www.youtube.com/watch?v=UulkGrJjOM8

Avant de commencer la pratique, n'oubliez pas de vous créer une clef API. Pour ceci, connectez vous dans un premier temps à votre compte google, ceci vous permettant de vous authentifier auprès des services Google, puis rendez vous sur la page d'obtention d'une clef. Remplissez et valider le formulaire, la clez API vous est affectée. Sauvegardez là bien, nous allons l'utiliser.

Comment faire ?

Rentrons désormais dans le vif du sujet, car c'est ce que vous attendez tous. Commençons par aller sur la doc de la page des activités dont je vous ai mis le lien dans mon introduction. Dans la colonne de gauche, vous avez toutes les actions possibles via les API, classées par "thématique" si l'on puis dire ainsi (Activities, Caption, ChannelBanners...). Nous allons commenceer simplement par une recherche. Pourquoi une recherche est-elle qualifiée de simple ? Car vous ne demandez à Google simplement de lancer une requête avec un seul paramètre (la chaine recherchée). En fait il y en a deux :

  • Votre clef API
  • La chaine recherchée

Afin d'éclaircir mes explications ultérieures, ayez à l'esprit que la clef API est toujours à passer dans l'url, même si je ne le mentionne pas dans mes explications.

Le paramètre part=snipset spécifie à l'API de retourner TOUTES les propriétés qu'elle peut nous renvoyer. Je vous conseille donc ce paramètre, du moins pendant la phase de développement.

Je me permets de vous rappeler que l'ordre des paramètres dans l'URL n'au AUCUNE importance

Dernière petite information pour mieux comprendre la suite, ayant préparé ce tutoriel sur un poste Linux, pour tester mes commandes, j'ai utilisé la commande curl de la façon classique "curl commande". Si vous n'avez pas cette commande à disposition (est-elle présente sou windows ? Elle est présente sous MacOS en mode Terminal !), lancez sulplement la commande (sans "curl") dans un navigateur, en collant l'URL dans la barre d'adresse..

Recherchons des vidéos de chats

Dans mes exemples suivants, lorsque vous écrivez votre clef API, ne mettez pas les crochets que j'ai mis pour suivre la convention normale d'écriture !
Oui, moi aussi je sais être original :-)

la commande est
curl "https://www.googleapis.com/youtube/v3/search?key=[VOTRE CLEF API]&part=snippet&q=cats"

ATTENTION : il est fort probable que vous soyiez amené à un moment ou à un autre de faire une recherche sur une chaine de caractères. Là où dans Google, vous allez saisir "Victor Hugo" (aves les guillemets) pour que le blanc soit pris en compte dans la recherche, ici que nenni ! Il faut "URLEncoder" la chaine (et vous n'êtespas sans savir que l'encodage d'un expace est %20. Nous devons donc écrire :

curl "https://www.googleapis.com/youtube/v3/search?key=[VOTRE CLEF API]&part=snippet&q=Victor%20Hugo"

Recherchons les sous-titres disponibles pour la publicité "Epic Split" de Volvo Trucks, mettant en vedette Jean-Claude Van Damme.

(Cette vidéo a été sélectionnée parce qu'elle contient de nombreuses pistes de légende et aussi parce qu'elle est géniale.)

La commande est de la forme :

curl https://www.googleapis.com/youtube/v3/captions?videoId=M7FIvfx5J10&part=snippet&key=[VOTRE CLEF API]

Récupération des données du canal Google sur youtube de GoogleDeveloppers

Les informations sur le canal (channel ou chaine youtube) sont renvoyées en JSON.

curl -i -G -d "id=UC_x5XG1OV2P6uZZ5FSM9Ttw&part=snippet%2CcontentDetails%2Cstatistics&key=[VOTRE CLEF API]" https://www.googleapis.com/youtube/v3/channels

Récupère les sections de canal affichées sur le canal Google Developers

Un paramètre est nécéssaire, c'est l'id du canal :

curl -i -G -d "channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw&part=snippet%2CcontentDetails&key=[VOTRE CLEF API]" https://www.googleapis.com/youtube/v3/channelSections

Une simple recherche sur un mot clef, ici "surfing"

curl -i -G -d "q=surfing&maxResults=25&part=snippet&key=[VOTRE CLEF API]" https://www.googleapis.com/youtube/v3/search

Souscrire aux notifications d'une chaines

Idéal pour les youtuber qui peuvent lancer (en ajax par exemple) cette URL depuis leur propre site afin que l'internaute s'abonne à la chaine youtube, pour peu qu'il soit connecté à son compte Google, sans aller sur Youtube !

curl https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_ID

Et pour ceux qui ne connaisent opas leur channel ID, il est là : Le channel ID se trouve là : https://www.youtube.com/account_advanced

Dernière modification le vendredi, 04 janvier 2019 11:19
samedi, 18 mai 2019 10:08

Pour une foie, recherchons dans la bible

Écrit par

La problématique

Aujourd'hui, nous allons voir une API qui se raporte à la confession chrétienne. Si vous connaissez des API liées à d'autres confessions, je reste interessé, vous pouvez m'en faire part par le formulaire de contact.
Pour résumer, dans la bible, y'a des évangiles (appelés des livres dans cette API, si j'ai bien compris), des chapitres, des versets et des apôtres. En miixant tout ça, nous pouvons en sortir le verset souhaité, il n'ya qu'a l'appeler.

Le service interrogé :

Le service possède une documentation bien expliquée, mais sa présentation laisse à désirer à mon goût. Cepndant, on y comprend que l'appel se fait de la manière suivante :

http://ibibles.net/quote.php?xxx-yyy/aa:bb-cc:dd

Détaillons désormais les paramètres :

  • http://ibibles.net/quote.php : nom du service
  • xxx : Version de la Bible. Il peut être en minuscules ou en majuscules ou mixte.
  • yyy : Livre de la Bible comme celui ci-dessous. Il peut être en minuscules ou en majuscules ou mixte
    Une exception est "Philémon" qui a besoin d'au moins 5 caractères, sinon il sera confondu avec "Philippiens"
  • aa : Numéro de départ d'un chapitre
  • bb : Numéro de départ d'un verset
  • cc : Numéro de fin d'un fin chapitre. Il peut être omis s'il est le même que le départ chapitre. Le format est de la forme "aa:bb-dd"
  • dd : Numéro de fin d'un verset. Il peut être omis s'il n'y a qu'un seul verset. Le format est de la forme "aa:bb"

Codes de l'exemple :

Nous allons voir ici quelques exemples commentés
Recherchons le premier verset de la bible selon Mathieu, chapitre 5, verset 3 à verset 12 (attention, dans la bible, le dernier verset n'est pas le 12 mais le 5, remarquez qu'il n'y a aucune erreur !) : http://ibibles.net/quote.php?lsg-mat/5:3-5-12

Le résultat :

Dernière modification le vendredi, 04 janvier 2019 11:33
samedi, 11 mai 2019 20:06

Mais que vaut un bitcoin ?

Écrit par

La problématique

Aujourd'hui nous allons regarder de plus près certaines API concernant l'environnement du Bitcoin, cette monnaie virtuelle. Pour celles et ceux qui, tout comme moi ne connaissent pas forcement cet univers, je vous recommande la lecture de cette page qui fournit de belles explications sur le sujet : https://blockchainfrance.net/blockchain-pour-les-nuls/

Le service interrogé : blockchain.info

blockchain.ino est un site web qui apporte à l'utilisaateur des tas d'informations sur l'univers de la crypto-monnaie Bitcoin. Nous allons nous concentrer sur 3 actions, 3 services blockchain.info peut nous rendre :

  • La conversion de monnaies
  • La liste des valeurs en monnaies fiduciaires d'un Bitcoin
  • D'autres API plus anectdotiques via plusieurs méthodes existent :
    • Temps réel :
      • getdifficulty - Cible de difficulté actuelle sous forme de nombre décimal
      • getblockcount - Taille actuelle du bloc dans la plus longue chaîne
      • latesthash - Hachage du dernier bloc
      • bcperblock - Récompense de bloc actuelle en BTC
      • totalbc - Total des Bitcoins en circulation (avec un retard d'une heure au maximum])
      • probability - Probabilité de trouver un bloc valide à chaque tentative de hachage
      • hashestowin - Nombre moyen de tentatives de hachage nécessaires pour résoudre un bloc
      • nextretarget - Bloquer la hauteur de la prochaine difficulté recibler
      • avgtxsize - Taille moyenne des transactions pour les 1000 derniers blocs. Modifiez le nombre de blocs en passant un entier comme second argument, par ex. avgtxsize / 2000
      • avgtxvalue - Valeur de transaction moyenne (1000 par défaut)
      • interval - temps moyen entre les blocs en secondes
      • eta - temps estimé jusqu'au bloc suivant (en secondes)
      • avgtxnumber - Nombre moyen de transactions par bloc (100 par défaut)
    • Recherche d'adresses
      • getreceivedbyaddress/Address - Obtenez le nombre total de bitcoins reçus par une adresse (en satoshi). Plusieurs adresses séparées par | Ne pas utiliser pour traiter des paiements sans le paramètre de confirmation
      • Ajoutez les paramètres start_time et end_time pour limiter les informations reçues à une période donnée. Les temps fournis devraient être un horodatage Unix en millisecondes. Plusieurs adresses séparées par |
      • getsentbyaddress/Address - Obtenez le nombre total de bitcoins envoyés par une adresse (en satoshi). Plusieurs adresses séparées par | Ne pas utiliser pour traiter des paiements sans le paramètre de confirmation
      • addressbalance/Address - Récupère le solde d'une adresse (en satoshi). Plusieurs adresses séparées par | Ne pas utiliser pour traiter des paiements sans le paramètre de confirmation
      • addressfirstseen/Address - Horodatage du bloc où une adresse a été confirmée pour la première fois.
    • Recherche de transactions :
      • txtotalbtcoutput / TxHash - Récupère la valeur de sortie totale d'une transaction (en satoshi)
      • txtotalbtcinput / TxHash - Récupère la valeur d'entrée totale d'une transaction (en satoshi)
      • txfee / TxHash - Obtenir les frais inclus dans une transaction (en satoshi)
      • txresult / TxHash / Address - Calcule le résultat d'une transaction envoyée ou reçue à Address. Plusieurs adresses séparées par |
    • Outils
      • addresstohash / Address - Convertit une adresse bitcoin en un hachage 160
      • hashtoaddress / Hash - Convertit un hachage 160 en adresse bitcoin
      • hashpubkey / Pubkey - Convertit une clé publique en un hachage 160
      • addrpubkey / Pubkey - Convertit une clé publique en adresse
      • pubkeyaddr / Address - Convertit une adresse en clé publique (si disponible)
    • Divers
      • unconfirmedcount - Nombre de transactions en attente non confirmées
      • 24hrprice - Prix pondéré sur 24 heures des plus grandes bourses
      • marketcap - Capitalisation boursière en USD (basée sur un prix pondéré sur 24 heures)
      • 24hrtransactioncount - Nombre de transactions au cours des dernières 24 heures
      • 24hrbtcsent - Nombre de btc envoyés au cours des dernières 24 heures (en satoshi)
      • hashrate - Taux de hachage réseau estimé en gigahash
      • rejected - Cherchez la raison pour laquelle le hachage de transmission ou de blocage fourni a été rejeté (le cas échéant)

Code PHP exemple

Bien évidemment, l'objet de cet article n'est pas de prendre les méthodes une à une et de les faire fonctionner mais bien de montrer un aperçu que les services web fournis, qui pourraient vous interesser.

Interval moyen entre deux blocs en secondes : <br>
590.844

Résultat

Nous allons ici, rechercher le nombre de bitcoins en circulation.

Dernière modification le mercredi, 02 janvier 2019 20:10

La problématique

Pour celles et ceux qui ne connaissent pas la notion de User-agent, l'user-agent d'un navigateur permet de connaitre les caractéristiques d'un navigateur. Très utile a l'epoque ou Internet Explorer nargait les normes des langages de création de sites web, ce User-agent permettait d'adapter le code javascript des pages en fonction des navigateurs. Encore utilisés à mon avis dans les bibliothèques javascript tel que JQuery, on est bien d'accord que nl'exemple que je montre là est bien pour la prouesse technique que pour son utilisation à proprement parler.

Le service interrogé

le service interrogé pour cet exemple est useragent.app, étonnant comme nom de service pour un service rertournant le user-agent. :-) Alors comment ca marche ? La première chose, après s'être identifié sur le site du webservice, L'URL contient les identifiant et accès au service. L'URL est de la forme :

https://api.useragent.app/parse?key=key&ua=ua

  • key : clef API du service, fourni lors de votre enregistrement au service
  • ua : C'est le user agent d'un navigateur

Le résultat

Nous allons regarder le résultat de cette API, avec une valeur de ua à Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36 (je n'ai pas utilisé pour ua la valeur du navigateur courant mais j'aurais pu) :

Et en PHP pour ceux que ça interesse :

<?php
    $key = 'VOTRE_CLEF_API_ICI';
    $ua = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36';
    $ua = urlencode($ua);
    $raw = file_get_contents('https://api.useragent.app/parse?key=' . $key . '&ua=' . $ua);

    if (!$raw) {
       die('Parse error');
    }

   $result = json_decode($raw, true);
   include("XMLJSON2array/array2table.php");
   echo array2table($result, true, $null = ' ');
?>

 

 

Dernière modification le mercredi, 02 janvier 2019 16:38

La problématique :

Cette semaine, nous allons nous pencher sur une API peu commune et plutôt sympa pour les wabmaster développeurs de sites web : page2image. Bien que son nom parle de luimême, est il utile de rappeler que ce service et là pour vous fournir une copie d'écran de votre site web ? Alors oui, j'entends les puriste me répondre "ok pour la copie d'écran mais quel navigateur ? quel version ? quel système d'exploitation ? Et je ne peux qu'être d'accord avec vous, puriste du web, mais cette API n'est pas là pour vous afficher le résultat d'une page web sur différents OS/Browser (il y a des systèmes dédiés à cette fonctionnalité comme http://browsershots.org/ ou encore https://www.browserling.com pour ne citer qu'eux). Ici l'API est juste pour sortir une copie d'écran faite sur un "navigateur moderne". Afin de ne pas vexer la susceptibilité de chacun, je ne vous founirai pas les dernier tests ACID)

Le service interrogé : page2image

Ce service ne porte-t-il pas bien som nom ? Créer une copie d'écran de ce qui est affiché à un navigateur. A quoi cela peut servir ? Et bien certain annuaires web, en référençant leurs entrées, affichent un mini copie d'écran du site. Stocké en local sur le serveur, vous comprendez vite qu'avec cette API, les copies d'écran peuvent être dynamiques et donc... à jour !

Lorsque j'ai migré mon site Aujourd'hui à Nancy sur une plateforme CMS, quelques ANNEES plutard, j'ai retrouvé dans les annuaires des copie d'écran datant... de presque 10 ans. Et cela s'explique car une fois référencé dans ll'annuaire, le screenshot du site n'est JAMAIS remis à jour. Et désormais, vous avez toutes les clefs pour refaire une mise à jour de vos screenshots régulièrement, voire dynamiquement !

Dernière petite remarque que je destine tout particulièrement aux webmasters, ce webservice vous renvoie l'URL de la copie d'écran. Sympa pour la passer directement dans <img src="/...">

Un point positif à mentionner car c'est relativement rare mais bien pratique. Une fois que vous avez votre compte de créé et que vous vous êtes identifié au service, et que votre clef API est générée, rendez vous dans la partie API Generator, code wizard ou identifiez vous et cliquez sur mon lien. Une formulaire vous permet de générer les lignes de code (qui se mettent ensuite dans un lien de type <a href) et vous aurez un formulaire vous permettannt de prédéfinir vos options, dans parcourir toute la doc. Merci qui ? Sébatien, bien sûr (oui j'entends d'autres choses de là.... ).

ATTENTION : pour pouvoir faire fonctionner ce service, j'ai dû choisir l'onglet REST API Hard qui m'a renvoyé un JSON dans lequel l'URL de l'image est mentionnée, qui elle est correcte. Les autres systèmes proposés, je n'ai pas réussi à les faire fonctionner

Le résultat

Je ne peux vous proposer ici l'intégralité des services de ce services, mais je ne peux que vous renvoyer sur la documentation en anglais que je trouve claire (vous savez désormais que j'attache personnellement une grande importance à la documentation).

Dernière modification le dimanche, 30 décembre 2018 18:02
samedi, 20 avril 2019 08:02

Conversions de monnaies

Écrit par

La problématique

Cette semaine, nous allons regarder une service web qui vous permet de connaitre en temps réel, enfin au moment du lancement de la requête http, le taux d'une monnaie. Le code effectué ici n'est pas actualisé en temps réel, mais je ne doute pas que vous avez les compétences AJAX afind e mettre en place cette façon de faire. Bon, il faiut quand même bien dire que le service interrogé mets en contrepartie des monnaies traditionnelles face aux nouvelles monnaies numériques. En effet, nous allons regarder le traditionnel Bitcoin, mais aussi l'Ethereum, pour ne citer que les deux crypto-monnaies les plus connues.

Le service interrogé : worldcoindex

Les API de WorldcoinIndex permettent d'interroger un webservice qui va vous renvoyer des informamtions monétaire sur les cryptomonnaies. Toujours pareil, nous n'allonspas voir toutes les fonctionnalités possibles, mais voyons ce que l'on peut faire. L'ensemble de la documentation est disponible à l'adresse :https://www.worldcoinindex.com/apiservice

Les méthodes utilisables sont :

  • Ticker (telescripteur) : pemet de convertir une monnaie. 3 paramètres sont à passer dans l'url
    • key : c'est votre clef API que vous aurez demandé au préalable sur le site
    • label : nom, sigle de la monnaie d'origine et de destination. Utilise pour être réexploité ultérieurement
    • fiat=btc : sigle de la monnaie dans laquelle votre monnaie doit être retranscrite.

Voici un exemple fonctionnel : où je convertis une valeur en euros en cryptomonnaie

Il est aussi possible de sortir l'ensemble des transactions effectuées. Je vous ai créé un code exemple ci-dessous, voici le code PHP correspondant :

Code de l'exemple

<?php

setlocale (LC_TIME, 'fr_FR.utf8','fra');

function decimalNotation($num){
$parts = explode('E', $num);
if(count($parts) != 2){
return $num;
}
$exp = abs(end($parts)) + 3;
$decimal = number_format($num, $exp);
$decimal = rtrim($decimal, '0');
return rtrim($decimal, '.');
}
function json2array($x){
$t= file_get_contents($x);
return(json_decode($t, true));
}

$a = array();
$t=array();

echo "<pre>";
$a = json2array("https://www.worldcoinindex.com/apiservice/v2getmarkets?key=3GntouhJLf4BuwqgAMx6whxMsO4ywg&fiat=btc");
$t= $a["Markets"][0];
$c = count($a["Markets"][0]);

for ($i=0;$i<=count($a["Markets"][0])-1;$i++)
{
echo $i.". ".$t[$i]["Name"]." (".$t[$i]["Label"].") en date du ".date('l jS \of F Y h:i:s A',$t[$i]["Timestamp"])." vaut ".(float)$t[$i]["Price"]." bitcoin<br>";
}
print_r($t);
//echo "Label : ". $a["Markets"][0][0]["Label"];
echo "</pre>";
?>

Le résultat

Dernière modification le samedi, 11 mai 2019 16:39
Page 1 sur 3