vendredi, 28 février 2020 17:47

Corona ? Une presqu'API

Écrit par
Au fil de mes recherches concernant les différences API du web, je me suis rendu compte que beaucoup de données était aussi accessible en libre-service, sous différents formats, principalement en CSV mais d'autres formats sont aussi accessibles.
Des jeux de données, il y en a énormément sur Internet. Que ce soit des données gouvernementales, nous y reviendrons dans un prochain article, que ce soit des données géographiques, ou des données de santé, des quantités de fichiers sont téléchargeables, et mets à jour à intervalles réguliers.
Cela fait quelques jours que je recherche un jeu de données très particulier pour vous montrer ce que l'on peut faire avec ce genre d'informations, et pour coller dans l'actualité, j'ai cherché et j'ai trouvé un jeu de données sur le coronavirus.
Mais à quel prix. J'ai effectué presque 3 jours de recherche.
Au départ, je m'étais mis à la recherche d'une API. Mais en réfléchissant un peu, ce genre d'informations se trouve principalement au sein même deux fichier plutôt que sur un service Web interrogeable via une appli. Nous allons donc aujourd'hui voir comment ça marche Honda tendance de parcourir plusieurs Jeux d'été que je trouverai ici et là. En effet des jeux de données et il y en a à la pelle sur internet tous aussi intéressant que les autres, mais surtout mise à jour très régulièrement. C'est la raison pour laquelle il faut intégrer le jeu directement dans un programme, de manière à ne pas avoir à le télécharger à chaque fois que l'on veut s'en servir. C'est le programme qui sera ce travail.
 
Le principe de ce programme tient en une dizaine de lignes. Il suffit de donner url des fichiers que on veut traiter, l'ouvrir, en php on peut le faire directement, et enfin le parcourir pour récupérer ligne
Les informations, plus traiter chacune de ces lignes on les explose en fonction des séparateurs séparant les champs.
 bien entendu, le source est téléchargeable n'hésitez pas à en abuser. Je vais le commenter
À partir de cette semaine, je vais donc tenter de regarder les jeux de données intéressant, et les exploiter afin de démontrer comment remplir des sites à l'aide de données déjà existante.
J'ai déjà dans mon grand chapeau d'autres jeux de données fort intéressantes que nous regarderons au fait du temps. Avant de terminer cet article je tiens à souligner que plusieurs types de fichiers existe des format CSV des format text ou d'autres types de données suivant des formats standards
Amusez-vous bien mais surtout de stresser pas trop pour le connard virus...
vendredi, 14 février 2020 17:44

API Youtube (N°2) : La gestion des captions

Écrit par

Nous continuons notre tour des API Youtube, en nous intéressant aujourd'hui aux vidéos en direct.
Effectivement, YouTube propose une plate-forme de streaming plutôt intéressante, relativement simple à utiliser pour les youtubeurs, et qui nous donne des informations assez intéressantes concernant les directs (lives). Attention toutefois, tout ce que nous allons voir aujourd'hui n'est accessible qu'à un moment donné, puisque c'est un direct. (J'en ai fait l'amer expérience à interroger une API sur un live venant de se terminer, el temps de lancer ma requête HTTP).
Je tiens à remercier, pour cette vidéo, la youtubeuse Pinkgeek, qui, au moment où j'écris ces quelques lignes, est en live. Certes son charme n'est pas désagréable, mais c'est le seul LIVE que j'ai trouvé facilement sur YouTube. Je profite de ce petit article pour spécifier une trouvaille que je viens de faire : pour rechercher (et donc trouver!) un live vidéo, il suffit de se rendre à l'adresse www.youtube.com/live, adresse dédiée aux lives!
Nous allons donc voir, au cours de cet article, comment trouver des informations sur une vidéo diffusée en direct, grâce aux API YouTube. Pour ceci, nous allons nous intéresser plus particulièrement à la propriété captions, dont vous pourrez, trouver facilement la documentation sur YouTube à l'adresse https://developers.google.com/youtube/v3/docs/captions, notament sur toutes les informations sur cette activité. Pour les anglophobes, je rappelle qu'un live tout simplement et la diffusion en direct d'une vidéo. Les lives se font essentiellement, sur Youtube, au travers de webcam mais d'autres technologies et d'autres plateformes co-existent pour cette pratique vidéaste.

Alors que peut-on faire avec la propriété captions ?

Une ressource caption, représente un ensemble de propriétés de la vidéo. Que l'on soit bien d'accord, les informations retournées ne sont pas les sous-titres eux-mêmes, mais plutôt des métadonnées sur ces derniers.

Au risque de vous décevoir, nous n'allons pas voir grand-chose cette semaine, puisque cette propriété caption ne retourne pas beaucoup d'informations. Parmi les méthodes, autre que l'insertion de sous-titres, que nous ne verrons pas nous pouvons aussi faire des mises à jour et des suppression de données via l'API. Mais nous allons nous intéresser aujourd'hui plus particulièrement au fait de lister des sous-titres.

Pour faire cette action, nous allons comme un autre habitude lancer une requête cURL dans laquelle nous passons l'identifiant de la vidéo, et la propriété part sur laquelle je ne reviendrai pas (nous l'avons déjà vu) et bien entendu votre clé privée. URL et ainsi formée :

https://www.googleapis.com/youtube/v3/captions?part=snippet&videoId=gyI14l2kCTw&key=VOTRE_CLEF_API Si nous lançons cette adresse dans un navigateur web, nous pouvons nous rendre compte que nous retournons un ensemble de données sous la forme d'un fichier, JSON plutôt bien fourni en renseignements ou plutôt sur la vidéo en question.

Je ne vais pas. Détailler, comme à mon habitude, l'ensemble des propriétés renvoyées, la doc est d'ailleurs faite à cet effet.

Un peu de lecture documentaire Alors oui, je sais cette semaine. On article est un peu court mais je pense qu'il fallait absolument que on parle de cette propriété caption. Nous continuons à la semaine prochaine avec une autre propriété de YouTube.

Dernière modification le samedi, 15 février 2020 09:49
samedi, 08 février 2020 10:06

API Youtube (N°1) : La gestion des Activités

Écrit par

Aujourd'hui 8 février, nous allons ouvrir un grand dossier "Youtube" concernant les API, qui va durer sur plusieurs numéros.
J'ai en effet regardé depuis quelques semaines déjà, l'ensemble des API de type "GET" de youtube et me suis rendu compte qu'il y avait tellement de choses à dire que j'ai décidé de scinder mes habituels articles plus plusieurs "sous-articles", chacun d'entre eux traitant une rubrique particulière.
Au cours de ce dossier, ces semaines à venir, nous allons nous pencher sur plusieurs thématiques telles que les Youtube Data API, les activités, les chaines.... j'en passe et des meilleures.
Mes démonstrations, pour des raisons de simplicité, suivront au mieux la documentation officielle des API youtube.
Ouvrons le dossier avec cette première partie concernant les activités. Mais avant cela, cet article étant le point de départ d'un grand dossier, voyons comment obtenir... une clef API !

L'obtention du token d'accès youtube

Bon, je ne vous cacherai pas que cette grande série d'articles qui s'ouvre à ma date anniversaire, c'est le cadeau que je vous fais pour ces ... ans. (chuuuut). Alors on ne cesse de le voir dans mes articles, pour pouvoir interagir avec Youtube, nous avons besoin de notre jeton d'accès (access token). Comment l'obtient-on ? Simple, enfin pas tant que ça, j'ai longuement cherché !
Avant tout, je reviens sur la différence entre tous ces termes.

  • La clef API est une chaine de caractères vous permettant de vous authentifier auprès du serveur pour lui faire une demande/requête http
  • Le token (ou jeton) est un jeton numérique limité dans le temps, vous authentifiant et autorisant certains droits et lancement de "commandes", pour une durée limitée dans le temps.

De ce fait, j'attire vraiment votre attention à bien passer dans les paramètres, soit l'une, soit l'autre donnée en fonction de ce que Youtube vous demande !

Le jeton d'accès ou access token

Vous l'aurez compris, ce paragraphe est essentiel pour toute la suite de mes articles : comment obtenir ce précieux sésame ?
Et bien en le demandant à Google mais pas n'importe comment, et pas n'importe quand. Ce sésame ayant une durée de vie limité (sans quoi nous n'aurions besoin que de la clef API qui elle est illimitée dans le temps), il faut le demander A CHAQUE REQUETE HTTP en spécifiant simplement le paramètre key dans l'URL, avec votre clef API. A priori, tout le reste est transparant pour le développeur. Mais il y a un mais...
En effet, vous pouvez être amené à vouloir connaitre les informations sur ce token d'accès. Après tout il est a vous. :-)
Il suffit d'en faire la demande ainsi :

https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=VOTRE_TOKEN_ICI

L'autorisation, vous le verrez dans la doc de l'API, est necessaire à chacune de vos demandes d'accès aux API. De ce fait, un écran d'authentification sera affiché pour demande de confimation d'accès a votre "compte API" à chacune des sessions d'accès à votre API. Et il ne faut pas croire que c'est pour embêter tout le monde que cette demande est effectuée côté "client", cela ne reste que de la sécurité. A votre demande, je pourrais revenir dessus.

Préambule important !

Google a mis en place un outil fabuleux vous permettant de tester "hors code" vos requêtes. En effet, lorsque vous vous connectez à leur documentation de leurs Liste des leurs API, vous remarquerez le panneau sur la droite, masquable, vous permettant de lancer vos requêtes à tester. Ceci vous permettant de bien tester votre requête, de voir si tous les paramètres sont bien rentrés (euh... c'est du vécu) et voir aisi que la requête http fonctionne (ou pas). Usez-en, voire abusez-en, vous gagnerez un temps fou surtout au début)

Google tests API

Les activities

Qu'est-ce qu'une activité ?

Je pense qu'il faut commencer par décrire une activité puisque cet article ne traite que de ce sujet. Au sens Youtube, on appelle Activité un ensemble d'informations sur une action entreprise par une chaîne ou un utilisateur particulier sur YouTube. Finalement cette définition est simple et définit bien les contours d'une activité Youtube !
Nous comprenons désormais que de cette activité, nous allons pouvoir extraire une sorte d'historique des actions effectuées sur un compte particulier Youtube. Et là, je pense notamment aux parents sans forcement d'accès parental sur leur ordinateur ou s'ils doutent de l'activité des enfants sur Youtube, qui pourront otenir l'extraction des activités, pouvant etre fort interessant pour voir si les enfant recherchent plutôt des vidéos des Teletubbies ou des videos d'Anna POLINA sur Youtube, ce contrôle pouvant se faire "après coups" !

Lançons-nous

Dans un premier temps, je ne peux que vous conseiller de vous impreigner de la documentation dont je vous ai donné l'URL, ca va drôlement vous aidert lorsqu'on va vous demander de remplir des paramètres... que vous ignorez.
Gardons à l'esprit tout au long de ces tutoriels, que nous n'allons travaillez que sur NOS PROPRES données publiée sur Youtube, donc essentiellement sous notre nom (même s'il y aura des cas particuliers comme lors de recherches). Et oui, les API ne nous autorisent pas d'aller forcément récupérer des infos d'autres chaines. Imaginez vous si on pouvait supprimer des videos, par exemple, des plus grands youtubeurs actuels... Toutes mes démos se feront sur ma propre chaine, bien faible en terme de vidéos, je vous l'accorde.

Regardons désormais ce que l'on vous demande de remplir.

Le channelID.

Allez sur votre chaine et arrêtez vous une fois la page chargée. Regardez l'URL, elle ressemble à https://www.youtube.com/channel/UCsAP8nA6S_6J31ny-q_Qbwg (cette URL est bidon, prenez la vôtre). Je pense qu'il ne faut pas vous faire de dessin, l'identifiant de votre chaine devant etre un identifiant UNIQUE, il s'agit de le chaine en rouge https://www.youtube.com/channel/UCsAP8nA6S_6J31ny-q_Qbwg. Nous allons donc recopier cette chaine, enfin plutot la copier-coller, dans le champs qui nous le demandait et cliquer, au bas de la zone, sur le bouton execute. Oh miracle, et grâce à moi (pour info, mes chevilles vont bien), vous avez obtenu un code retour 200 (ce code est une norme du protocole HTTP) signifiant que la requête HTTP a été traité avec succès. Il ne vous reste plus qu'a regarder de plus près les données retournées. Alors voyons ca de plus près, je chausse mes lunettes.

Données en retour

Parfois en JSON, parfois en XML on d'en d'autres formats normés, Google, maison mère de Youtube, à choisi de retourner les informations utiles issues des appels aux API, au format JSON. Qu'a-t-on en retour ?
Nous avons trois grandes information, la dernière étant la plus importante :

  • kind : affiche le type de requête exécutée. Ici un liste d'activités. Notez le bien, je ne reviendrais pas dessus lors de mes prochains articles, ou en survolant l'information
  • etag : Fait partie intégrante de la normalisation http, permet aux applications de se référer à une version spécifique d'une ressource API particulière. La ressource peut être un flux entier ou un élément de ce flux.Bien que retournée, cette information n'est pas forcément utile à ce que nous souhaitons faire
  • pageInfo : permet de travailler lorsque le retour de données comporte plusieurs pages, permettant la pagination des résultats retournés. Nous allons l'ignorer pour l'instant
  • id : Bon je fais pas de dessin, c'est l'identifiant de la vidéo.
  • items : C'est là que ca devient interessant : c'est à partir de Items que nous avons un sous-ensemble de résultats de votre requête. Alors allons y :
    • kind : identifiant du type de ressource retournée par l'API. L'ensemble des types de ressources sont visibles sur la page Youtube Activity
    • etag : Un ETag est un identifiant unique opaque assigné par le serveur web à chaque version d'une ressource accessible via une URL. Si la ressource accessible via cette URL change, un nouvel ETag différent du précédent sera assigné. Utilisés ainsi, les ETags sont similaires à des empreintes digitales, et peuvent être rapidement comparés pour vérifier si deux versions sont identiques, et ainsi savoir si une demande peut être honorée par un cache local ou pas. (Voir l'article sur Wikipedia)
    • id : C'est l'identifiant, dans la sous-partie items, de la vidéo retournée
      • snippet : fragments
        • publishedAt : Date de publication de la vidéo
        • channelId : Identifiant du canal
        • title : Titre de la vidéo
        • description : Description textuelle de la vidéo
        • thumbnail : Miniature image de la vidéo, retournée dans 4 définitions d'images différentes. Nous retrouvons :
          • url : Adresse URL de l'image
          • width : longueur de la miniature retournée
          • height : largeur de la miniature retournée
        • channelTitle : Titre du canal
        • type : Type d'activité décrit par la ressource.
  • nextPageToken : La valeur qui peut être utilisée comme valeur du paramètre pageToken pour récupérer la page suivante dans la liste des résultats retournés
  • prevPageToken : La valeur qui peut être utilisée comme valeur du paramètre pageToken pour récupérer la page précédente dans la liste des résultats retournés
  • pageInfo : L'objet pageInfo encapsule les informations de pagination pour le jeu de résultats. On y retrouve :
    • totalResults : Le nombre total de résultats retournés
    • resultsPerPage : Nombre de résultats par page.
  • items[] : Une liste d'activités ou d'événements qui correspondent aux critères de l'utilisateur.

En fonction des requetes http, d'autres résultats peuvent etres inclus à cette liste. L'ensemble des champs retournés possibles est accessible sur https://developers.google.com/youtube/v3/docs/activities.

Voila pour la première partie de ce tuto qui va en comporter plusieurs.

Dernière modification le vendredi, 14 février 2020 17:51

Aujourd'hui nous allons ouvrir un dossier de plusieurs articles dans lesquels nous allons nous intéresser aux API et autres fonctionnalités adaptées aux développeurs, de YouTube.
L'API de Youtube tellement grosse mais tellement intéressante que j'ai décidé non pas d'abandonner mais de créer plusieurs articles sur le sujet. Contrairement à tous les autres articles que j'ai écrit jusqu'à maintenant, je vais découper celui de l'accès aux API Youtube en plusieurs morceaux.
Même si j'ai déjà écrit quelques articles concernant Youtube et certaines fonctionnalités pour les développeurs, nous allons, au cours de ces articles, rentrer vraiment dans le détail afin de pouvoir utiliser et récupérer des informations issues de vos comptes YouTube. N'ayaynt toujours pas réussi à faire un upload de video, désolé mais je ne vais m'attaquer qu'aux requetes de type GET. Que ces informations soient publiques ou privées, c'est-à-dire répondant à la clé API vous appartenant, nous allons voir comment nous allons pouvoir extraire des informations du mastodonte de la vidéo.

Dans cette première partie, nous allons nous consacrer à un besoin que j'avais personnellement, à savoir la recherche de vidéos sur YouTube. En effet, Google nous donne accès à des tas de fonctionnalité nous permettant de rechercher et récupérer des informations sur les vidéos, de manière très précise, au moyen de différents paramètres dans les URL d'accès aux API.

Que vous soyez néophyte ou développeur, si vous savez ne serait-ce que manipuler un petit peu du JSON, cet article va forcément vous intéresser si vous êtes youtubeur.

Avant de commencer, je tiens à préciser que les différents articles concernant YouTube ne seront peut-être pas consécutifs.

Les API Google

Que ce soit avec Google ou que ce soit avec Facebook, vous avez sûrement plus remarqué, si vous n'êtes qu'utilisateur de ces outils, qu'à certains moments, lorsque depuis Facebook où depuis un site tiers, vous utilisez un service nécessitant une authentification, comme Facebook, vous avez une fenêtre qui apparaît, au moment de l'authentification, qui vous demande si vous êtes d'accord d'utiliser ce service avec le compte que vous avez sélectionné. Cette partie est très intéressante, car elle permet de donner des accès et des droits aux API que nous allons utiliser. C'est le même principe lorsque votre service vous demande cette information, c'est simplement un droit d'accès à ce service que vous attribuez. Une fois qu'on a compris ceci, on a compris beaucoup de choses. Je ne reviens pas sur ce message, vous avez forcément déjà vu lorsque vous utilisez une connexion Facebook pour vous connecter à un service. Rentrons dans le vif du sujet

Nous allons regarder aujourd'hui si méthode de faire des recherches sur YouTube. Je vous ai présélectionné plusieurs types de requêtes et donc de recherche sur youtube.

Googlelisons Youtube :)

Prérequis

Si vous souhaitez faire une recherche via les API avec une chaîne de caractères contenant un espace (je vais reprendre l'exemple de Mistress Harley, car cet exemple contient deux mots séparés par un espace) il faut entourer la chaîne de double cotes. On obtient donc "Mistress Harley". Mais c'est pas fini. On voit bien qu'entre les deux mots, il y a un espace. On a donc besoin "d'URLEncoder" la chaîne (pas de panique, les navigateurs modernes le font automatiquement !) Une fois urlencodée, on obtient "Mistress%20Harely". Et oui, tous les caractères spéciaux sont remplacés par un équivalent numérique. Et si vous est etes curieux, je vous renvoie sur la page Wikipedia du Percent-encoding.

Un chercheur qui cherche, on en trouve, mais un chercheur qui trouve... on en cherche !

Le chercheur en l'occurence, ici, c'est le moteur Google. Regardons les recherches que l'on peut faire.

Faisons une recherche telle qu'on la ferait sur Youtube

Avec un mot

C'est le + simple :

https://www.googleapis.com/youtube/v3/search?part=snippet&q=Martinet&key=votre_code_API

Je prends 2 minutes pour détailler cette URL :

Avec plusieurs mots

Effectivement, là ca se "complexifie" quelque peu (enfin la complexité ici, c'est pas grand chose par rapport à la suite). Il va falloir encoder les doubles cotes (") car ce caractère est interdit dans uen URL, tout comme l'espace encodé (ATTENTION : j'ai deja vu que sous IE ca marchait.... On se demande pourquoi). Nous allons faire une recherche Youtube sur Sébastien LHUILLIER. Ma première recherche ne comporte pas de double cote, on fait donc une recherche simple sans rechercher la phrase exacte. (Si vous voulez vous simplifier la vie, faites vos recherche dans Youtube et récupérez l'URL générée)

https://www.googleapis.com/youtube/v3/search?part=snippet&q=%22Sebastien%20LHUILLIER%22&key=[VOTRE CLEF API]

Bon, j'espère n'avoir perdu personne car là, nous n'en sommes qu'au Prérequis des recherches youtube. Mais si vous avez tout compris jusque là, je ne vais désormais que vous montrer des critère de restrictions des résultats retournés.

Ajoutons des critères de restrictions

Vous l'aurez compris, désormais c'est du bonus. En effet, Youtube propose des tas de critères supplémentaires pour affinez vos recherches. J'emploie le terme affiner, qui n'est pas très juste. En effet, dans la suite de ma démonstration, il faut noter que le paramètre q= n'est pas obligatoire. Nous le verrons notamment avec une recherche par zone géographique, où l'utilisation d'un mots clef reste facultatif. (on peut chercher une vidéo faite dans une rayon de X km2 sans spécifier de terme de recherche). Afin de récupérer une URL de recherche propre, et pour ne pas écrire un inventaires des possibilités, je vous renvoie sur la doc de Google qui possède un outils plutot très bien fait, qui va vous générer la bonne URL désirée : https://developers.google.com/youtube/v3/docs/search/list. Alors, oui, je ne vais pas faire un inventaire à la Prévert, mais le vous ai quand meme préparé quelques exemples afin de comprendre et de se lancer.

Recherche des vidéos sur le nom de l'utilisateur

L'URL est de la sorte : https://www.googleapis.com/youtube/v3/channels?part=snippet%2CcontentDetails%2Cstatistics&forUsername=sebastien.lhuillier&key=votre_code_API
Attention a bien prendre le nom de l'utilisateur et pas le "label" qui s'affiche dans youtube.

Recherche par rapport à des données géographiques

https://www.googleapis.com/youtube/v3/search?part=snippet&location=21.5922529%2C-158.1147114&locationRadius=10mi&q=surfing&type=video&key=votre_code_API
Vous l'aurez compris, les paramètres du paramètre de l'URL "location" sont la latitude et la longitude, séparées par une virgule.

Recherche de lives sur contenant le mot "Nancy"

Et oui, il est aussi possible de demander à Youtube de ne retourner que des lives (en français, des diffusions de vidéos en temps réel) sur la ville de nancy (paramètre à modifier ou supprimer bien entendu) cette façon :
https://www.googleapis.com/youtube/v3/search?part=snippet&eventType=live&maxResults=25&q=nancy&type=video&key=votre_code_API

Recherches de lives circonscrits à une zone géographique :

https://www.googleapis.com/youtube/v3/search?part=snippet&eventType=live&maxResults=25&q=nancy®ionCode=Fr&type=video&key=votre_code_API

Recherches de lives dans un rayon de 10 Km

https://www.googleapis.com/youtube/v3/search?part=snippet&location=21.5922529%2C-158.1147114&locationRadius=10km&q=surfing&type=video&key=votre_code_API

Recherchons "mes vidéos" (les videos de j'ai uploadé sur mon compte)

A priori, les résultats apparaissent de manière antéchronologiquement, sauf à spécifier le paramètre order : https://www.googleapis.com/youtube/v3/search?part=snippet&forMine=true&maxResults=25&type=video&key=votre_code_API

Voici pour quelques exemples. Je n'ai pas fait le tour intégral car je ne peux pas. Vous aurez un aperçu de ma façon de faire.
Si vous utiliser des spécificités dans les recherches que vous faites, envoyez-les moi par mail, en me précisant le titre de cet article, je me serai un plaisir de les rajouter à la liste, en précisant, si vous le souhaitez, l'auteur de la requete.

Dernière modification le samedi, 01 février 2020 15:28
dimanche, 19 janvier 2020 08:42

Exploitons les API de l'INSEE

Écrit par

Nous allons voir, au cours de ce (long) article, comment récupérer très facilement des données INSEE sur vos entreprises favorites.
ATTENTION : deux sites internet avec des API sur les données INSEE existent. Nous parlons bien ici du site api.insee.fr. Il existe (ou existait) un autre site avec des API aussi quelque peu différentes (d'après ce que j'ai vu) http://api.insee.fr qui ne fonctionne plus.

Acquérons une clef API

Je ne reviens plus sur le "à quoi cela sert", elle sert à vous authentifier et gérer les restrictions lorsque l'API en possède. JE ne vais pas m'étendre sur le sujet étant donnée qu'une documentation en français sur l'acquisition des clefs API de l'INSEE est mise en ligne et est assez détaillée. (je ne vous cacherai pas que pour comprendre comment acquérir une clef, ... j'ai lu la doc !) Ensuite, lançons-nous dans le grand bain !

Premièrement vérifions la date de la dernière mise à jour de la base INSEE

Si je vous laisse le jetons qui m'a permi de faire mes tests, c'est qu'il ne fonctionne plus. Remplacez le jeton (en bleu) par le vôtre.

curl -X GET --header 'Accept: application/json' --header 'Authorization: Bearer 1f6c905a-435c-302e-babd-6e2152bfd86f' 'https://api.insee.fr/entreprises/sirene/V3/informations'

Accès au service avec recherche de la totalité des périodes historiques par SIREN

Rappelons poor celles et ceux qui l'ignorent, ce que signififie SIREN : Système Informatique du Répertoire des Entreprises.
L'accès au SIREN s'appelle via l'API de cette forme :
https://api.insee.fr/entreprises/sirene/V3/siren/{siren}

Il est possible de définit un paramètre date
https://api.insee.fr/entreprises/sirene/V3/siren/{siren}?date={date}

Voici les parmètres pouvant être concaténés à l'URL :

  • {siren} est un numéro à 9 chiffres : paramètre obligatoire.
  • {date} est de la forme AAAA-MM-JJ : paramètre facultatif

Accès au service avec le paramètre date qui renvoie uniquement la période comprenant cette date :

On accède à cette données via la requête HTTP https://api.insee.fr/entreprises/sirene/V3/siren/{siren}?date={date}.
Bien évidemment, il faut remplacer les valeurs en bleu par les données réelles.
Les données à paser en paramètre correspondent à :

  • {siren} est un numéro à 9 chiffres : paramètre obligatoire.
  • {date} est de la forme AAAA-MM-JJ : paramètre facultatif
    • Ex. 1 : https://api.insee.fr/entreprises/sirene/V3/siren/005520135
    • Ex. 2 : https://api.insee.fr/entreprises/sirene/V3/siren/005520135?date=2019-01-01

ATTENTION : si aucune activité n'est antérieure à la date donnée, une réponse 404 est retournée car aucun élément n'est trouvé pour le Siren 005520135 passé en paramètre à la date 1950-01-01, par défaut.

URL d’accès au service avec recherche de la totalité des périodes historiques par SIRET

Il est ainsi possible de récupérer un historique des éléments connus pour un SIRET donné, via un appel de cette sorte :
https://api.insee.fr/entreprises/sirene/V3/siret/{siret}

Voici les parmètres pouvant être concaténés à l'URL :

  • {siren} est un numéro à 9 chiffres : paramètre obligatoire.
  • {date} est de la forme AAAA-MM-JJ : paramètre facultatif

Interrogation "unitaire" par Siret

En effet, et c'est le plus interessant à mon avis, quoi de plus syma de connaitre des informations sur UN siret donné ?
Recherchons sur la durée de vie du SIRET donné les informations le concernant : https://api.insee.fr/entreprises/sirene/V3/siret/{siret}
Mais remarquez qu'il est aussi possible de borner la période de recherche, en pasasnt un paramètre date https://api.insee.fr/entreprises/sirene/V3/siret/{siret}?date={date} Voici les parmètres pouvant être concaténés à l'URL :

  • {siret} est un numéro à 14 chiffres : paramètre obligatoire.
  • {date} est de la forme AAAA-MM-JJ : paramètre facultatif


Le retour est structuré en 2 parties :

  • le header (à ne pas confondre avec l'en-tête http ni l'en-tête de réponse) qui contient le code retour et le message d'erreur ;
  • l'établissement, qui comprend :
    • Toutes les variables courantes hors celles de l'adresse
    • La structure unité légale qui comprend toutes les valeurs courantes de l'unité légale,
    • La structure adresse qui comprend toutes les variables de l'adresse,
    • La liste de toutes les périodes et, pour chaque période,
    • La liste des variables historisées.

L'ensemble des éléments retournés est dans la documentation.

Pour aller + loin...

Je ne m'étendrai pas sur ce sujet car cet article n'ap pour but que d'initier les néophyte aux API de l'INSSE, mais sachez que vous pouvez combiner des critères de recherches, afin d'affiner vos rcherches.
L'url de votre recherce multicritere se construit de la sorte (cas de recherche d'un SIREN) : https://api.insee.fr/entreprises/sirene/V3/siren?q={requête multicritère}
L'url de votre recherce multicritere se construit de la sorte (cas de recherche d'un SIRET) : https://api.insee.fr/entreprises/sirene/V3/siret?q={requête multicritère}
S'il y a d'autres paramètres à adjoindre, en plus de la requete multicritères, on peut le faire de la sorte : https://api.insee.fr/entreprises/sirene/V3/siren?q={requête multicritère}&date=
La syntaxe des critères multiples est basé sur le couple nomVariable:valeur. nomVariable doit correspondre exactement (casse comprise) à la variable de sortie de l’interrogation unitaire.
Toutes les variables peuvent être utilisées, y compris les indicatrices, avec quelques subtilités pour les variables au format date et les variables historisées.

EXEMPLES

Aller j'ai testé l'ecriture de mon article avec ces requetes http suivantes :

Recherches monocritères :

  • Récupération des données pour UN siren : https://api.insee.fr/entreprises/sirene/V3/siren/005520135
  • Récupération d'informations pour UN SIREN donné à partir d'une date : https://api.insee.fr/entreprises/sirene/V3/siren/005520135?date=2000-01-01
  • Récupération d'informations pour UN SIREN avec date précédant la première période connue de l'établissement: RETOURNE UN STATUT 404
  • Récupération par SIRET : https://api.insee.fr/entreprises/sirene/V3/siret/39860733300059
  • Récupération par SIRET à partir d'une date : https://api.insee.fr/entreprises/sirene/V3/siret/39860733300059?date=2015-08-01
  • Récupération par SIRET avec date précédant la première période connue de l'établissement: RETOURNE UN STATUT 404

Recherches multicritères

J'ai aussi testé des recherches multicritères :

  • Recherche de tous les établissements du Siren 775672272 : /siret?q=siren:775672272
  • Recherche de toutes les unités purgées : /siren?q=unitePurgeeUniteLegale:true
  • Recherche de tous les établissements des unités purgées : /siret?q=unitePurgeeUniteLegale:true
  • Recherche de tous les établissements de la commune de Malakoff (code commune=92046) : /siret?q=codeCommuneEtablissement:92046

Recherche sur des valeurs historisées

Il est aussi possible d'interroger la "base" sur l'historisation de certaines données :

  • Recherche de toutes les UL dont la dénomination contient ou a contenu le mot GAZ : /siren?q=periode(denominationUniteLegale:GAZ)
  • Recherche de toutes les UL qui ont été cessées : /siren?q=periode(etatAdministratifUniteLegale:C)
  • Recherche de tous les établissements dont le code de l’activité principale a été 33.01 : construction de cellules d’aéronef (code NAP600) : /siret?q=periode(activitePrincipaleEtablissement:33.01)

Recherches par éliminations

  • Recherche de tous les établissements dont l'unité légale est une personne morale : /siret?q=-categorieJuridiqueUniteLegale:1000
  • Recherche de tous les établissements qui n'ont jamais été fermés : /siret?q=-periode(etatAdministratifEtablissement:F)

Recherches en combinant des booléens

  • Recherche de toutes les entreprises dont l’activité principale a été au moins dans une période 84.23Z ou 86.21Z : /siren?q=periode(activitePrincipaleUniteLegale:84.23Z OR activitePrincipaleUniteLegale:86.21Z)
  • Recherche de tous les établissements qui ont au moins une période où l'établissement est à la fois Actif et a une activité principale à 84.23Z : /siret?q=periode(activitePrincipaleEtablissement:84.23Z AND etatAdministratifEtablissement:A)
  • Recherche de tous les établissements qui ont moins une période dont l’activitePrincipaleEtablissement est 84.23Z et qui n'ont jamais été fermés : /siret?q=periode(activitePrincipaleEtablissement:84.23Z) AND -periode(etatAdministratifEtablissement:F)
  • Recherche de tous les établissements sur la commune de Malakoff dont la dernière catégorie juridique de l’unité légale est 9220 (association déclarée): /siret?q=codeCommuneEtablissement:92046 AND categorieJuridiqueUniteLegale:9220

Recherches exactes

La recherche exacte se fait en utilisant les guillemets doubles.
Recherche de toutes les unités légales dont la dénomination contient exactement le terme " LE TIMBRE " : /siren?q=periode(denominationUniteLegale:"LE TIMBRE")

Recherches en utilisant des jokers

  • « * » permet de remplacer une chaîne de caractères de taille quelconque :
    Recherche de tous les établissements des unités légales dont l'activité principale commence par 8 : /siret?q=activitePrincipaleUniteLegale:8*
    Recherche de tous les établissements des unités légales dont le sigle n'est pas rempli : /siret?q=-sigleUniteLegale:*
  • « ? » permet de remplacer exactement un caractère.
    Recherche de tous les établissements dont l'unité légale a un sigle sur 3 positions : /siret?q=sigleUniteLegale:???
    Recherche de tous les établissements dont l'unité légale a un sigle qui commence par FC et est sur 3 positions exactement : /siret?q=sigleUniteLegale:FC?
  • Recherche avec utilisation de différences de Damerau-Levenshtein
    • Recherche de tous les établissements dont l’unité légale a pour sigle PAUL à une erreur près : /siret?q=sigleUniteLegale:PAUL~1
    • Recherche de 20 établissements dont la dénomination comporte "bleu le": /siret?q=denominationUniteLegale:"bleu le"&nombre=20&chmps=denominationUniteLegale
    • Recherche de 20 établissements dont la dénomination comporte "bleu le" AVEC UNE DISTANCE DE Levenshtein de 2 : /siret?q=denominationUniteLegale:"bleu le"~2&nombre=18&champs=denominationUniteLegale
    • Recherches de plages de valeurs
    • La syntaxe est la suivante :
      • nomVariable:[valeur1 TO valeur2] : bornes valeur1 et valeur2 sont incluses
      • nomVariable:{valeur1 TO valeur2} : bornes valeur1 et valeur2 sont excluses

Les symboles { et } doivent être échappés :%7B et%7D

      • Recherche sur des dates
      • Il est possible de faire des recherches sur les variables de type date, y compris les dates de début et de fin de période.
        • Pour les SIREN
          • Recherche de toutes les entreprises dont l’activité principale a été au moins dans une période 84.23Z ou 86.21Z : /siren?q=periode(activitePrincipaleUniteLegale:84.23Z OR activitePrincipaleUniteLegale:86.21Z)
          • Recherche de tous les établissements qui ont au moins une période où l'établissement est à la fois Actif et a une activité principale à 84.23Z : /siret?q=periode(activitePrincipaleEtablissement:84.23Z AND etatAdministratifEtablissement:A)
          • Recherche de tous les établissements qui ont moins une période dont l’activitePrincipaleEtablissement est 84.23Z et qui n'ont jamais été fermés : /siret?q=periode(activitePrincipaleEtablissement:84.23Z) AND -periode(etatAdministratifEtablissement:F)
          • Recherche de tous les établissements sur la commune de Malakoff dont la dernière catégorie juridique de l’unité légale est 9220 (association déclarée) : /siret?q=codeCommuneEtablissement:92046 AND categorieJuridiqueUniteLegale:9220
          • Recherche de toutes les unités légales dont la dénomination contient exactement le terme "LE TIMBRE" : /siren?q=periode(denominationUniteLegale:"LE TIMBRE")

Et toujours l'utilisation de jokers

      Avec le joker * :
      • nomVariable:va* => nomVariable doit commencer par "va"
      • nomVariable:*eur => nomVariable doit terminer par eur
      • nomVariable:*ale* => nomVariable doit contenir la chaîne ale
      • nomVariable:* => nomVariable doit contenir au moins une lettre
      Exemples :
      • Recherche de tous les établissements des unités légales dont l'activité principale commence par 8 : /siret?q=activitePrincipaleUniteLegale:8*
      • Recherche de tous les établissements des unités légales dont le sigle n'est pas rempli : /siret?q=-sigleUniteLegale:*

Avec le joker ? :

        • Recherche de tous les établissements dont l'unité légale a un sigle sur 3 positions : /siret?q=sigleUniteLegale:???
        • Recherche de tous les établissements dont l'unité légale a un sigle qui commence par FC et est sur 3 positions exactement : /siret?q=sigleUniteLegale:FC?

Recherche sur des approximations

        • Recherche de tous les établissements dont l'unité légale a comme prenom1UniteLegale MICKAEL à deux caractères près, mais pas MICKAEL exactement : /siret?q=prenom1UniteLegale:MICKAEL~ AND -prenom1UniteLegale:MICKAEL
        • Recherche de tous les établissements dont l’unité légale a pour sigle PAUL à une erreur près : /siret?q=sigleUniteLegale:PAUL~1
        • Recherche de toutes les UL dont le nom d’usage va de DUPONT à DURAND,
          • y compris DUPONT et DURAND : /siret?q=nomUsageUniteLegale:[DUPONT TO DURAND]
          • Non compris DUPONT et DURAND : /siret?q=nomUsageUniteLegale:{DUPONT TO DURAND}
          • Y compris DUPONT et non compris DURAND : /siret?q=nomUsageUniteLegale:[DUPONT TO DURAND]

Recherche sur des variables de type date

          Pour les SIRET :
          • dateCreationEtablissement
          • dateDernierTraitementEtablissement
          • dateDebut
          • dateFin
          • dateCreationUniteLegale
          • dateDernierTraitementUniteLegale
          • dateDebut
          • dateFin
          La syntaxe pour requêter sur les variables dates est la suivante :
          • variabledate:AAAA-MM-JJ
          • variabledate:AAAA-MM recherche sur le mois correspondant
          • variabledate:AAAA recherche sur l'année correspondante
          La syntaxe pour requêter sur les périodes:
          • variabledate:[2001 TO 2004-05] cherchera du 01/01/2001 inclus au 31/05/2004 inclus
          • variabledate:[2017 TO *] cherchera à partir du 01/01/2017
          EXEMPLES :
          • Recherche de toutes les UL dont la date de création est au 01/01/2014 : /siren?q=dateCreationUniteLegale:2014-01-01
          • Recherche de toute les UL dont l’année de création est entre 1980 et 2003 : /siren?q=dateCreationUniteLegale:[1980 TO 2003]
          • Recherche de tous les établissements mis à jour au mois de février 2018 et non mis à jour depuis : /siret?q=dateDernierTraitementEtablissement:2018-02
          • Recherche de toutes les UL qui ont eu un changement de dénomination l'année 2017 : /siren?q=periode(changementDenominationUniteLegale:true AND dateDebut:2017)
          La syntaxe pour requêter avec des dates en paramètres :

 

        La syntaxe est la suivante : ?q={requête}&date=AAAA-MM-JJ
        EXEMPLES :
        • Recherche de toutes les UL actives au 18/09/2009 : /siren?q=periode(etatAdministratifUniteLegale:A)&date=2009-09-18
        • Recherche de tous les établissements de Malakoff dont l’activitePrincipaleEtablissement est 56.10A : (restauration traditionnelle) et actifs au 01/01/2018 : /siret?q=periode(etatAdministratifEtablissement:A AND activitePrincipaleEtablissement:56.10A) AND codeCommuneEtablissement:92046 &date=2018-01-01

PAGINATION DES RESULTATS :

        • {nombre} : unités légales ou établissements à afficher par page (entre 0 et 1 000). La valeur par défaut est 20 réponses par page.
      • {debut} : correspond au rang de classement du premier établissement à afficher sur la page. La valeur par défaut est 0 (attention 0 correspond au premier établissement). Le paramètre a été limité à 100 000 pour des raisons de performance.
        Attention : lorsque vous souhaitez utiliser le paramètre {debut}, il est fortement recommandé d'utiliser le paramètre {tri}.
        {tri} indique si les résultats doivent ou non être triés. Par défaut le paramètre vaut false afin de favoriser la performance de l'appel. Dans ce cas, les résultats sont triés par un score de pertinence. Si plusieurs éléments obtiennent le même score ils peuvent arriver dans n'importe quel ordre et cet ordre peut varier d'une interrogation à l'autre. En fixant le paramètre à true, les éléments obtenant le même score seront classés par siren ou siret selon la collection interrogée. Ce paramétrage à true est fortement recommandé lorsque le paramètre {debut} est utilisé.
      • CURSEURS : Si vous désirez parcourir un grand nombre de résultats, notamment pour obtenir des résultats au-delà de la limite indiquée ci-dessus, pour des raisons de performance il est fortement recommandé d’utiliser des curseurs. A votre première requête ajouter le paramètre curseur=*.
      • Première requête : /siret?q=*&curseur=*&nombre=100

 

        Retour :
        • Nombre : 100,
        • Curseur : "*" ,
        • CurseurSuivant : "AoEuMTIwMDI3MDE2MDAzNjU="
        • Requête suivante:/siret?q=*&curseur=AoEuMTIwMDI3MDE2MDAzNjU=&nombre=100
        • Retour :
        • Nombre : 100,
        • Curseur": "AoEuMTIwMDI3MDE2MDAzNjU=",
        • CurseurSuivant : "AoEuMTIwMDI3MDE2MDA1MjI="

RECHERCHES MULTICRITERES :

Je n'ai pas regardé les facettes qui ne permettent que des comptages

      Selection des champs (projections en langage de manipulations de données) :
      • Afficher le champs dateCreationEtablissement pour l'établissement ayant le siret 39860733300059 : /siret/39860733300059?champs=dateCreationEtablissement
      • Afficher plusieurs champs sur ce même établissement : /siret/39860733300059?champs=nomUniteLegale,dateCreationEtablissement ou /siret/39860733300059?champs=nomUniteLegale,dateCreationEtablissement,enseigne1Etablissement
      • Masquer les valeurs nulles : /siren/356000000?masquerValeursNulles=true&date=2019-01-01

RECHERCHES PHONETIQUES :

      En effet, il est possible de faire des recherches sur la phonétique des mots.

 

      La syntaxe est la suivante, au choix :
      • /siren?q=periode(nomVariable.phonetisation:{recherche}) pour les variables historisées
      • /siren?q=nomVariable.phonetisation:{recherche} pour les variables non historisées
      • /siret?q=periode(nomVariable.phonetisation:{recherche}) pour les variables historisées
      • /siret?q= nomVariable.phonetisation:{recherche} pour les variables non historisées
        • Recherche des entreprises (personnes physiques) dont le nom correspond phonétiquement à mairau : siren?q=periode(nomUniteLegale.phonetisation:mairau)&champs=nomUniteLegale&nombre=20
        • Recherche des établissements dont la dénomination courante de l’entreprise contient un mot correspondant phonétiquement à oto : siret?q=denominationUniteLegale.phonetisation:oto&champs=denominationUniteLegale&nombre=10

SCORE

      Pour chacun des résultats obtenus, selon la valeur jugée plus ou moins fiable, un score est affecté, permettant ainsi un tri à l'affichage. Cependant, ce sore doit être demandé dans la requête. Icin nous obtenons une recherche sur les 8 premiers résultats dont la dénominationUnitéLégale=auto :
      • /siret?q=denominationUniteLegale:auto&champs=score,denominationUniteLegale&nombre=8
      • Dans le cadre de score, il est possible de pondérer les valeurs de retour. Ex : R
      • Recherche sur le sigle et la dénomination en privilégiant la dénomination : /siret?q=ponderation(denominationUniteLegale*2sigleUniteLegale*1:unimer)&champs=score,denominationUniteLegale,sigleUniteLegale
      • Recherche de plusieurs mots dans la denominationUniteLegale en privilégiant un mot :/siren?q=ponderation(denominationUniteLegale*4:hotel) OR ponderation(denominationUniteLegale*2:mer) &champs=score,denominationUniteLegale&nombre=5

Connaitre l'état du service interrogé

      Il faut avoir à l'esprit que ce système n'est pas mis à jour en temps réel, mais suite au lancement de batch à intervalle (réguliers ?). Aussi, est il important de connaitre ces dernières dates de mises à jour. C'est grace à cette commande

https://api.insee.fr/entreprises/sirene/V3/informations

      Trois dates sont importantes :
      • dateDerniereMiseADisposition : Les données sont mises à jour quotidiennement et intègrent les modifications enregistrées au répertoire Sirene la veille. Une fois par jour, les données consultées basculent de J-2 à J-1. En pratique quelques milliers d'unités voient leur situation évoluer, la grande majorité des unités restent inchangées.
      • dateDernierTraitementMaximum : Toutes les données enregistrées dans le répertoire Sirene jusqu'à cette date sont accessibles par le service API Sirene. Cette date intéresse un utilisateur cherchant à mettre à jour une copie des données.
      • dateDernierTraitementDeMasse : Entre 1 et 3 fois dans l'année, des traitements de gestion peuvent impacter un très grand nombre d'unités (par exemple la mise à jour annuelle des effectifs peut concerner plus de 3 millions d'unités légales en une seule fois)

Nomenclatures

Passons désormais à la deuxième partie de l'API : les Nimenclatures.
Les nomenclatures donne accès aux métadonnées statistiques de la statistique publique (dixit INSEE). . Vous pouez retrouver, si vous etes plus amplement interessé sur le contenu, toutes les explications sur https://api.insee.fr/catalogue/site/themes/wso2/subthemes/insee/pages/item-info.jag?name=Nomenclatures&version=v1&provider=insee, notamment la limitation du requetage, edicté à 30 interrogations par minute. Voyons les entrailles de l'API.

 

Informations sur une classe de la NAF rév.2 identifiée par son code

      Commençons pa rappeler, sauf erreur de ma part, qque le code NAF et le code APE sont la meme chose. Je ne suis pas spécialiste en la matière, si vous avez des précisions à apporter sur ce sujet, n'hésitez pas à me contacter avec les corrections à apporter sur le sujet.
      La demande d'information est très simple : il suffit de concaténer à l'uURL https://api.insee.fr/metadonnees/nomenclatures/v1/codes/nafr2/classe/ le code naf. On obtient donc, pour le code NAF 27.40, l'url suivante à lancer : https://api.insee.fr/metadonnees/nomenclatures/v1/codes/nafr2/classe/27.40

Information sur une sous classe

      Après avoir vu comment récupérer l'information sur une classe, nous allons interroger une sous classe. . Le principe est exactement le meme que celui décrit dans le paragraphe précédent, a l'unique différence que l'on asse en apramètre la sous-classe accolée à la classe. Si aucune réponse n'est recupérable, ils nous renvoie un message 404.

Géographie

L'INSEE nous permet aussi, bien entendu, d'interroger sa base afin de récupérer des données géographiques. Ce sont les denières interrogations possibles, amis non des moindres. Nous allons voir dans ce paragraphe comment obtenir des informations sur une commune française identifiée par son code INSEE évidemment, sur une région de frances, elle aussi identifiée par son code INSEE et enfin les information d'un pays identifié par son code à 5 chiffres commencant par 99

Informations sur une commune française identifiée par son code (cinq caractères)

Sans faire mon chauvin, autant utiliser ma plus grosse commune près de chez moi, la superbe ville de Nancy (sa place stanislas, ses macarons, ses bergamottes...) sous le code 54395 !
Trois informations nous sont retournées :

  • Le code INSEE que nous avons saisi
  • l'URL INSEE de la commune
  • L'intitulé exacte de la commune

Ce dernier retour peut d'ailleurs etre interessant pour les recherche de nom de commune associé à des soundex.

Informations sur une région française identifiée par son code (deux chiffres)

Continuons du coup sur notre lancée en utilisant le 41 comme région. Vous pouvez retrouver ces codes sur Wikipédia. Pour préparer la requete http, l'URL se présente donc sous la forme https://api.insee.fr/metadonnees/nomenclatures/v1/geo/region/54. En lançant la commande cURL (curl -X GET --header 'Accept: text/html' --header 'Authorization: Bearer [VOTRE BEARER]' 'https://api.insee.fr/metadonnees/nomenclatures/v1/geo/region/)fournie par le site de l'API, on obtient un retour JSON de la forme : {"code":"54395","uri":"http://id.insee.fr/geo/commune/54395","intitule":"Nancy"}. Il ne reste plus qu'éventuellement à le parser.

Information sur une région francaise

Il en va du meme principe pour récupérer les données officielles d'une région française. En passant la région drans l'url de la sorte : https://api.insee.fr/metadonnees/nomenclatures/v1/geo/region/27, ici le code région choisi est le code de la bourgogne, un json est retourné avec toutes les données officielles de la région. On y retrouve notamment le code de la réion, l'URL vers le site de l'INSEE de cette région et sa dénomination exacte.

Information sur un pays

Enfin, nous erminon cet article sur la récupération de données concernant des pays (notons d'ailleurs ici que c'est in institut officiel francais qui détient des informations sur d'autres pays) en lançant une requete http du type https://api.insee.fr/metadonnees/nomenclatures/v1/geo/pays/99223, la données en rouge étant le code officiel de l'INSEE du pays. Dans ce cas présent, c'est l'Inde.

La requete http nous retourne quatres informations :

      • Le code INSEE du pays
      • l'uri INSEE du pays
      • son intitulé exact
      • Son intitulé en entier exact.

Désormais, plus de prétexte pour appeler l'Inde par son nom exacte : République de l'inde.

Conclusion

Encore une fois, nous pouvons voir qu'au traver des API, il est for interessant de retrouver des données uniformisée. Cela peut etre interessant, dans un exemple que je connais bien, la gestion d'un agenda culturel, pour uniformiser les noms des communes. En effet, associés aux soundex 2 prenant en compte la francisation des termes, on peut monter des systèmes d'autocomplétions assez précis. Have fun

Dernière modification le dimanche, 19 janvier 2020 09:39
samedi, 04 janvier 2020 13:01

Friends+Me : la gestion des grosses queues

Écrit par

Aujourd'hui nous allons voir une version de démonstration du site friendsplus.me, un gestionnaire de publications sociales, permettant d'empiler des posts à diffuser sur les réseaux sociaux tels que Twitter ou encore Facebook.

Je rappelle le principe de queue : on "empile" dans une pile virtuelle des publications à diffuser sur vos réseaux sociaux, chacune d'entre elle sera distillée à une date et une heure précise, définie par vos soins, sur votre mur de votre réseau social. Attention, je parle de mur au sens large c'est-à-dire que nous pouvons inclure Facebook mais aussi Twitter !

Des outils comme celui que j'ai cité, propose une version de démonstration de 15 jours dans sa version gratuite et ne permet de gérer que deux queues virtuelles. Au-delà, si vous avez besoin de plusieurs queues, rendez vous sur la page adéquat https://app.friendsplus.me/teams/5e107f3a51fc4c0018acacaa/billing

Mais pourquoi tant de queues?

Si vous suivez mon blog, depuis quelques temps dans sa partie réseaux sociaux, vous pouvez vous rendre compte tous les outils que je vous présente sont souvent à destination des personnes qui gèrent des réseaux sociaux. En général, ces dernières ne gèrent pas qu'un seul compte, mais plusieurs, c'est le travail d'ailleurs d'un community manager !
Ainsi les outils que je vous présente comme celui-ci, ont la faculté de pouvoir gérer plusieurs comptes sur différents réseaux sociaux. Le plan gratuit ne vous propose que deux queues, mais si vous êtes un community manager expérimenté, vous avez sûrement plusieurs comptes, plusieurs profils à gérer. Ainsi, avec cette outil, vous pouvez gérer une large diffusion les informations de l'ensemble de votre clientèle vous employant.

Principe de fonctionnement

Le principe de gestion de queues est simple. Il faut empiler des posts à diffuser en définissant des moments précis de la journée ou du/des jour(s) à venir. L'outil publiera sur le réseau social, les posts au moment où vous l'avez indiqué.

Après avoir créer un compte sur Friendsplus, vous allez rajouter l'ensemble des réseaux sociaux sur lesquels vous travaillez. De Google Plus (et oui!!) à Pinterest, en passant par Twitter, Facebook, Tumblr et LinkedIn, nous voyons au premier abord que le service n'est pas géré de manière optimale, dans la mesure où le premier réseau social Google Plus n'existe plus !

Si vous êtes connecté à vos différents réseaux sociaux, il vous suffit de les ajouter un à un en vous authentifiant au réseau social et éventuellement pour Facebook, ajouter une page que vous gérez. Si vous n'êtes pas connecté à vos réseaux sociaux (cookie absent), il vous suffit d'effectuer cette connexion.

Une fois la relation effectuée entre vos réseaux sociaux dans l'outil Friendsplus, vous allez pouvoir créer dans votre que un nouveau post. Ce dernier peut être enregistré en tant que brouillon (et donc non publié), ou être directement ajouté dans la queue de publication.

Bien entendu, pour chacun des posts que vous créez dans la queue, vous avez la possibilité d'interagir dessus au travers de l'interface du site web avant publication.

Lorsque vous ajoutez un post dans la queue, vous pouvez le publier immédiatement, le publier plus tard ou lui définir une date et une heure de publication. Ceci est très intéressant même si les publications sont à définir à 5 minutes près par heure. (Sur la tranche d'exemple 10:00 - 11:00, vous ne pouvez publier qu'à 10:00, 10:05 , 10:10,...10:55. Toutes les 5 minutes, pas moins)

Une fois le post créé et programmé, vous avez la possibilité de le visualiser, de le supprimer, de l'enregistrer en tant que brouillon, de définir un horaire de publication ou éventuellement le publier directement sur votre réseau social (auquel cas l'outil perd de son utilité).

Sur l'interface, si nous cliquons sur Edit, nous nous retrouvons directement sur l'édition du post avec son contenu. En sauvegardant en tant que brouillon, comme son nom l'indique, le brouillon reste un brouillon que vous pourrez "reprendre" ultérieurement. Vous pouvez redéfinir ou modifier la date et l'heure de publication, et, comme je le disais, faire une publication directe.

Lorsque tous vos posts sont définis dans votre queue, vous pouvez interagir dessus (en haut de la page). Le premier onglet vous permet de lister les posts de la queue.

Le deuxième onglet vous permettra de voir votre queue et de créer un post. Ainsi votre poste sera dans la liste que vous pouvez visualiser dans l'onglet queue.

Le troisième onglet s'intitule Schedule. vous l'aurez compris si vous êtes anglophone, c'est l'onglet où vous pourrez programmer des posts à des horaires prédéfinis. Le service vous propose même la possibilité de définir des récurrences, (mais pour un même post à priori) !

Mais ce même on vous propose aussi de publier un post avec un retard ou un délai. Ainsi vous pouvez définir pour les posts que vous créez avec un certain nombre de minutes prédéfinis avant qu'il soit publié. Ce retard peut varier d'une minute à 3 semaines. Il va de soi que vous avez la possibilité de choisir votre fuseau horaire dans lequel vous vous trouvez, l'application prenant par défaut votre géolocalisation de votre ordinateur.

Certains réseaux sociaux limitent le nombre de caractères d'un post, vous pouvez utiliser un raccourcisseur d'URL. L'outil vous propose 3 solutions : ne rien utiliser (donc pas d'URL raccourcies), utiliser bit.ly, ou encore utiliser goo.gl. A vous de choisir.

Vous avez la possibilité d'importer un ensemble de posts à enfiler dans la queue, au travers d'un fichier texte. Dans ce cas une fonctionnalité bulk schedule vous permet de télécharger un fichier CSV. Le fichier CSV devant répondre à un format très particulier, le site vous propose à la fois le type de CSV à créer mais en plus vous met à votre disposition un petit exemple très complet.

BulkScheule

Très pratique, ce petit outil reste très intéressant dans la mesure où il ne gère que le timing de vos posts, aucun autre fonctionnalité n'est prévue par l'outil, ce qu'il en fait un outil simple et efficace.

Cerise sur le gâteau, l'éditeur vous propose la possibilité de télécharger une petite extension pour le navigateur Firefox, qui permet d'empiler vos posts à créer sans passer par le site web.

Enfin, pour parfaire l'outil, une FAQ est proposée au sein de laquelle vous retrouverez les questions les plus courantes des internautes.

Simple et efficace je trouve cette outil plutôt bien fait

mardi, 31 décembre 2019 19:31

Les API, c'est fini ?

Écrit par
Avant de vous souhaiter une joyeuse année 2020, je tenais à faire une petite aparté sur ma partie "API du web" que j'ai développé durant toute cette année 2019. J'ai été très heureux de vous présenter plusieurs types d'API possibles et imaginables, quasiment une par semaine ! Je pense, non pas avoir fait le tour des API, mais vous avoir montré utilisation générale des API au travers presque une cinquantaine de cas pratiques, certains même liés durant toute cette année 2019. Je ne clos pas à cette rubrique les API du web mais à compter de l'année 2020, je ferai moins d'articles sur cette rubrique, sur laquelle je pense avoir présenté les grandes lignes.
Toutefois je reste à l'écoute des articles et des API recensé sur le fabuleux site programmableweb, que je ne peux que vous conseiller à vous abonner à leur newsletter, si vous êtes intéressé, par ma rubrique par exemple.
Vous pouvez toujours me contacter pour me proposer des recherche d'articles sur certaines API du web, même si je compte passer, à partir de 2020, sur d'autres projets aussi sympathiques et restant dans les nouvelles technologies.
lundi, 16 décembre 2019 06:46

orc.Space : un OCR en ligne vraiment sympa

Écrit par
Abonné depuis plusieurs mois à un site internet recensant des API du web entier, je suis tombée ce matin à 7h, sur une API faisant de la reconnaissance optique de caractères, autrement appelé OCR.
ma curiosité l'a emporté sur ce que j'étais en train de faire. J'ai donc souhaité tester cette nouvelle API donc optique évidemment de mon resservir ultérieurement sur mon autre site. J'ai été agréablement surpris par la qualité et la rapidité du produit.

La problèmatique

Nous ne sommes plus dans une phase de scannérisation comme on le faisait autrement avec des OCR locaux tels que Omnipage, mais nous pouvons océriser tout document textuel sous la forme d'image en ligne. Il suffit d'avoir URL de l'image pour que l'API prenne en paramètre de l'URL, l'URL de l'image. Une avancée majeure !

Le service interrogé : OCR.space

Après avoir ouvert un compte et obtenu mes clés API permettant de compter le nombre de scanerisations (car l'API restent gratuite mais pour un nombre réduit d'utilisation de l'ordre de 25000 par mois, ce qui nous laisse pas mal de marge), je me suis rendu dans la documentation afin de voir comment cette fonctionnalité de l'API se mettait en oeuvre. Notons toutefois que dans la version gratuite, nous ne pouvons faire que 500 appels à l'API par jour ! Une version professionnelle et professionnelle PDF existe mais payante avec des nombres de pages largement grand.
Voyons désormais la simplicité d'utilisation de l'outil. Car c'est une véritable simplicité enfantine qui m'a épatée.
Le lien fourni ci-dessous permet de lancer et API (avec Votre clef API bien entendu).
https://api.ocr.space/parse/imageurl?apikey=[VOTRE_CLEF_API]&url=https://i.ytimg.com/vi/BKrXjIkl3bY/maxresdefault.jpg
Vous voyez que seules deux paramètres sont à passer dans l' url : votre clef API ainsi que l'url de l'image à scanner.
Vous obtiendrez en retour un fichier de type JSON dans lequel vous aurez votre texte parsé, avec des tas d'autres paramètres qui peuvent être très utile de lors de l'intégration de votre API dans un programme. Notons au passage que dans le texte parsé, l'OCR aura reconnu les retours chariot. Ils sont spécifiées par la commande \r\n.
Vous n'avez donc même plus de télécharger une image pour récupérer son texte, seule son URL à passer en paramètre de l'API suffit à retourner un texte.
Personnellement je pense que je vais vraiment utiliser cet outil que je trouve super simple
Vous retrouverez toutes ces informations sur le site OCR.space.
Dernière modification le vendredi, 20 décembre 2019 08:06

Je vais vous montrer ce que je viens de mettre en pratique pour ma grand-mère, geek dans l'âme, afin que nous soyons informé, lorsqu'elle quitte son domicile, du fait qu'elle ne soit plus chez elle. En effet, la semaine dernière, elle est parti boire un café avec des amis sans que nous nous soyons informé, chose qu'elle ne faisait plus depuis un certain temps. Autant dire que la famille c'est un peu inquiétée.

vendredi, 13 décembre 2019 13:09

Coup de gueule : Mais que sait google de moi ?

Écrit par

Aujourdh'ui, j'ai décidé d'essayer de voir ce que Google sait de moi. Moi qui ne suis pas très regardant sur les "données" que je donne à Google, aujourd'hui j'ai été très étonné.<br> Google met en place un outil pas trop mal écrit :  le dashboard de mon compte. Connectez-vous sous votre compte et allez sur https://myaccount.google.com/dashboard.

Sans être très regardant sur les datas personnelles, voici quand même ce que j'ai découvert. Service par service, on peut voir ce que google sait de nous. Il savait où j'habitais (ca c'est le comble), il m'a trouvé où était posé mon téléphone portable (oui oui !!), mes contacts Gmail ainsi que tout ce que je remplis sur un téléphone (ca encore ca peut se comprendre). J'ai même retrouvé des contacts que je stocke spécifiquement sur la carte SIM de mon téléphone !

Sans compter toutes les applis qui se connectent via votre compte ("connectez vous avec Google"), un livre gratuit "acheté" sur google book (android), les lieux enregistrés dans google maps, 595 applications téléchargées sur mon telephone (ca me parait beaucoup tout cas mais admettons), mes photos automatiquement uploadées sur google (1572), un profil de paiement (un cadeau à maman) donc mon compte paypal.

Comme je gère des sites webs (dont celui-ci), Google Search Console connait tout de mon activité de webmaster, mes vidéos vues et uploadées  sur Youtube.

Après avoir fait le tour de ce que google picore comme données, j'ai décidé de voir l'activité que connais google de moi. Avec une belle faute me semble t il de francais (que je soupçonne volontaire), chacun des blocs comporte la mention ACTIVER. Mais ce c'est pas infinitif, mais bien un participe passé : ces 6 blocs sont en effet TOUS activés. Et comble de mon étonnement, TOUTES mes recherche via siri, euh mince, via OK Google, toutes sont stockées. Tous mes SMS dictés.

En fouillant un peu, j'ai trouvé une solution pour vider TOUT MON HISTORIQUE via l'url : https://myactivity.google.com/delete-activity. Bien évidement, je ne peux que vous encourager à faire comme moi. Mais attention : la suppression peut n'être que "logique" c'est a dire marquer la donnée comme supprimée, mais toujours bien accessible par Google himself.

Ensuite, je me suis dis, "si on alait voir sur myaccount ? : https://myaccount.google.com/. Alors là encore pas mal de choses à regarder à mon grand étonnement. Mes informations personnelles (données en 2005 à l'ouverture de Gmail). Notons au passage que seules 3 choix sont proposés pour le sexe de la  personne : homme, femme, non précisé. Mais qui des transsexuels par exemple (pour ceux qui veulent le préciser, ce que je ne ferais pas) ? Là je suis tombé sur Google+ : encore des tonnes d'infos à effacer

Cet article est surement à compléter mais merde à la fin, qu'est ce ca peut leur foutre !

Vous pouvez aussi télécharger une archive de vos données https://takeout.google.com/settings/takeout?pli=1

Page 1 sur 7