Chloé v/s Twitter API : Round 1

Pour le corpus de notre projet, en plus des articles de presse, nous avons pensé exploiter des tweets.
Pour accéder à ces données (qui sont en nombre immense), nous avons deux solutions : une simple et très très chronophage, une compliquée et très très rapide.
La simple consiste à utiliser le code source de la page. Seulement, cette solution ne permet d’avoir accès qu’aux 20 premiers résultats d’une recherche, enfin aux 20 premiers tweets qui s’affichent. 20 fois 140 caractères c’est pas immense pour un corpus, on en conviendra. Pour que cette solution soit viable, il faudrait recharger la page tous les 20 tweets (et par conséquent calculer la fréquence de publication des dits tweets).
Cette solution est très longue et fastidieuse, et ne permet pas d’extraire un nombre important de données en une seule fois.
Heureusement pour nous, il existe ce qu’on appelle une API (pour Application Programming Interface), soit interface de programmation, qui dans le cas de Twitter est (presque) librement accessible et très bien documentée.
Utiliser l’API permet de lire et d’écrire des tweets de façon automatique. Autrement dit, cela permet de scripter à peu près tout ce qu’on veut faire sur Twitter (bouton ‘tweeter’ dans un site web, faire un Twitterbot, accéder aux tweets ET à leur métadonnées, etc…)
C’est donc cette solution que nous avons choisi, d’une part pour sa rapidité, mais surtout parce que c’est beaucoup plus intéressant d’un point de vue technique.

Pré requis

Utiliser l’API de Twitter requiert d’avoir un compte d’utilisateur Twitter validé par téléphone, ainsi que d’avoir déclaré la création d’une application. En effet, depuis la mise à jour de l’API en version 1.1 en octobre 2012, la plupart des requêtes nécessitent d’avoir deux codes : un Customer Key et un Customer Secret.
Par ailleurs, un peu de documentation n’est pas négligeable, ainsi je conseille la lecture préalable du fonctionnement du protocole HTTP, du format Json ainsi que celle de la documentation de l’API Twitter.

Procédure en images

Ainsi, nous avons un compte Twitter validé par téléphone,. Il nous faut maintenant déclarer notre application et ça se passe sur cette page.

Tuto_Twitter1
On renseigne ici le nom, la description et le site de son appli. Le champ callback Url n’est pas obligatoire mais il est recommandé de le remplir pour valider la création de l’appli.

Une fois l’application validée, Twitter nous attribue nos Customer Key et Secret. Ces codes sont indispensables car ils donnent l’autorisation d’accéder à l’API.
Ensuite, nous devons faire une requête pour extraire les tweets en fonction de la recherche. Nous devons donc aller sur cette page et sélectionner notre appli dans le menu déroulant (sous la liste des paramètres) afin d’accéder au générateur de signature pour faire notre requête. Ce qui donne ceci :

Tuto_Twitter2

 

Détaillons la requête.
C’en est une de type GET puisque (ayant lu la page wikipédia du protocole HTTP) nous voulons lire le contenu.
q=Putin
    ‘q’ est l’opérateur de requête (comme dans ‘query’).
lang=en
    ici nous choisissons la langue, donc l’anglais (‘fr’ pour français, ‘ru’ pour russe).
result_type=recent
    ce paramètre nécessite de connaître un petit peu Twitter pour être compris. Au moment où l’on fait une recherche, Twitter n’affiche pas par défaut les résultats par ordre chronologique, mais par popularité. Ce paramètre peut prendre une des trois options suivantes : ‘recent’ (ordre de publication, le plus récent en haut), ‘popular’ (les plus populaires) et ‘mixed’ (un mélange des deux). Si elle n’est pas précisée, la valeur par défaut est ‘mixed’.
count=100
    ici on indique le nombre de résultats par page (le maximum est 100).

Une fois notre requête terminée, on valide en cliquant sur ‘Get oAuth signature’ et ceci apparaît :

Le dernier bloc est la commande à entrer dans le shell Unix pour extraire les tweets.

Format des données extraites

L’output de la requête est au format Json (un format d’organisation des données par balises, un peu comme le XML), et ça ressemble à peu près à ça dans un document txt :

Tuto_Twitter4
(presque) illisible, quoi.

ABSOLUMENT TOUTES les métadonnées relatives aux tweets sont renseignées (en vrac : le pseudo de l’auteur, le texte, le nombre de retweet et de favoris, la date et l’heure du tweet, mais aussi presque toutes les informations relatives au compte de l’auteur, nombre d’abonnés et d’abonnements, géolocalisation si activée, photo de profil, etc…).
Bref, nous avons extrait une mine d’informations, qui dans notre cas, ne nous serons pas d’un grand intérêt mais qui sont extrêmement utiles à ceux qui analysent les phénomènes d’influence par exemple.

Bonus : Librairies

Certains développeurs ont créé des librairies permettant l’accès à l’API dans un script. Twitter en a validé et recensées quelques unes avec des exemples (ici), qui sont donc a priori stables.
En bonus, le lien vers la librairie Python (que je n’ai pas encore testée, mais ça ne devrait tarder).

A suivre…

La prochaine étape pour l’obtention d’un set de données le plus complet possible sera l’écriture d’un script qui extraira automatiquement les tweets à une fréquence déterminée. Je travaille encore dessus, et je posterai évidemment le détail dans un prochain article.

Publicités

2 réflexions sur “Chloé v/s Twitter API : Round 1

Répondre à tal-p3 Annuler la réponse.

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s