Les APIs des géants sociaux : Twitter & Facebook

API, vous vous rappelez ? Application programming interface ! (sinon allez relire notre premier article) Nous allons aujourd’hui entrer dans le vif du sujet. Que nous permettent les api des deux géants twitter et facebook ? Les utilisons nous fréquemment ?
Cette présentation sera illustrée d’exemples de sites web mettant en œuvre ces APIs dans des contexte variés, nous vous invitons bien évidemment à les visiter pour vous rendre compte de l’ampleur des possibilités qui sont offertes, en tant que développeur et en tant qu’utilisateur !

TWITTER

L’ensemble des fonctionnalités de l’API de Twitter sont divisées en trois grands groupes en fonction de leur cible :

  • Twitter for Websites (TfW) qui contient les principales fonctionnalités de Twitter. Il permet d’implémenter divers boutons ou widget permettant à un utilisateur de Twitter sur un sujet prédéfini, de suivre un compte, afficher une timeline …
  • REST API qui permet d’avoir accès à des fonctions faisant partie du coeur de Twitter tel que la mise à jour de statuts, les timelines et les informations des utilisateurs.
  • Streaming API qui donne accès aux données en temps réel. Cela peut être nécessaire pour certaines applications devant traiter une grande quantité de données ou devant fonctionner rapidement.

Nous allons présenter en détails l’API REST. Alors que Streaming et Twitter for Websites se concentrent sur un aspect bien particulier de l’usage de cet outil, REST procure l’ensemble des fonctionnalités associées à Twitter. Ici encore les différentes fonctions peuvent être découpées selon différents thèmes :

  • Timelines : Les timelines sont constituées d’un agrégats de tweets présentés dans l’ordre chronologique. Le développeur peut spécifier à travers les fonctions fournies sur quels critères sélectionner les tweets : sujet, auteur, followers …
  • Tweets : Cette famille de fonctions concerne directement le statut de l’utilisateur. Diverses fonctionnalités sont disponibles comme sa modification, sa mise à jour, récupérer les retweets associés…
  • Direct Message : Les utilisateurs inscrits peuvent s’envoyer entre eux des messages privés. Ces fonctions de l’API permettent de gérer ces messages : affichage, suppression, envoi…
  • Amis et Followers : Cet ensemble donne accès à toutes les informations concernant les amis et followers de l’utilisateur et de gérer les relations d’amitié et de suivi.
  • Utilisateurs : Une fois l’utilisateur connecté via son compte à l’application ces fonctions donnent accès à l’ensemble des paramètres et informations du profil afin de les récupérer, les afficher et les modifier
  • Utilisateur suggérés : Twitter fourni à travers ce thème un accès à la liste d’utilisateur qui sont susceptibles d’intéresser la personne connectée.
  • Favoris : Les fonctions associées permettent de retourner les tweets favoris de l’utilisateur, de les supprimer ou d’en créer
  • Listes : Cette famille de fonctions est très riche et variée. Elles ont comme point commun de retourner une liste que ce soit de tweets, d’utilisateurs, de statuts, de followers, en fonction des critères spécifiés.
  • Géolocalisation : Twitter est un réseau mondial et par conséquent les membres produisent de la donnée géolocalisée. Il est donc possible de récupérer les informations sur la localisation des utilisateurs et de leurs tweets (comme par exemple sur le site tweetping).
  • Tendance :Twitter est aussi un lieu de buzz où l’on retrouve les grandes tendances d’Internet. Des fonctions existent permettant d’explorer et suivre les différentes orientations des tweets.

Cet inventaire est un peu brutal. Mais il est important de connaître les possibilités offerte par l’API avant de commencer à l’utiliser.
C’est pourquoi lors du prochain article nous présenterons la mise en œuvre plus concrètes des fonctionnalités pour la conception d’application comme les méthodes d’authentification de OAuth, celles de recherches de Search ou encore de Streaming.

FACEBOOK

Avant de nous intéresser aux APIs en elles même, il est intéressant de comprendre le fonctionnement de facebook. Pour cela, nous allons nous intéresser au cœur de facebook, le socialgraph. Le social graph ? C’est quoi ?

  • un ensemble de sommet : les objets en relations que ce soient personnes, pages, messages ou autre contenu partageable possédant un identifiant unique
  • un ensemble d’arc entre ces sommet : représentant les liens entre les objets, de l’amitié au like

Connaissant l’ID il est alors possible d’obtenir les informations de l’objet. Par exemple, en vous connectant sur facebook, l’url de de votre profil est du type : “https://www.facebook.com/id” où id est une chaine de caractère (par exemple prenom.nom.int) en allant à l’adresse suivante, où id correspond à votre id récupéré en url, vous aurez ainsi une description au format JSon de votre profil !

https://graph.facebook.com/id

Cela marche aussi avec les photo par exemple ! Vous pourrez donc aller sur une photo, récupérer son id dans l’url et renvoyer la requête http correspondante pour obtenir une description de la photo en JSon, avec taille, source, description, commentaire et même id des personnes ayant liké !
Maintenant qu’on a les objets, il serait intéressant d’obtenir les connexions ! Les arcs reliant les objets peuvent avoir plusieurs types ! Avec une requête http, on peut obtenir les objets liés à notre objet par le type de relation voulue (aux règles d’autorisations prêt) par exemple, si vous tapez https://graph.facebook.com/id/friends vous devriez avoir la liste d’amis de la personne id… seulement si l’information est publique ! C’est là qu’interviennent les APIs.

“ When you create a story on Facebook, you’re not just posting text for someone to read. You’re also creating a set of structured relationships, as well. Your app, the person using your app and the article they like are all now connected. This is why we call it a graph. You’re not just telling stories, you’re also creating a structured history of the things that people have done in the world. “

 

facebook developpers documentation – open graph

Premièrement, notons que les APIs s’adaptent à tous les appareils (navigateur web, appli android, appli iphone, jeu)

  • Service de log in : en donnant à l’API votre log in de facebook, vous autorisez l’application à lire vos informations personnelles du socialgraph qui étaient inaccessibles par la simple requete http. ces informations servent à compléter votre profil pour l’application en question. C’est le facebook login. Si vous voulez savoir jusqu’à quel point vos informations personnelles peuvent être sollicités, n’hésitez pas à visiter ce site, assez dérangeant toutefois !
  • FQL = facebook query languages : Interface pour effectuer des requêtes de type SQL sur le social graph. Ces requêtes permettront de faire des recherches ou d’établir des statistiques basées sur le contenu du social graph. on y décèle un potentiel marketing indéniable ! Plus d’information dans le guide dédié
  • Open Graph : les APIs peuvent avoir accès au SocialGraph en écriture, notamment en proposant des articles facebook dans les sites webs ou en ajoutant des boutons like. Au final, on confère à l’application le droit d’accéder au social graph en écriture, comme on le donne à facebook en vous connectant, à des restrictions prêt bien sûr !
    On notera que l’accès en écriture permet aussi la suppression d’informations. On pensera notamment à Socialroulette, “Social Roulette has a 1 in 6 chance of deleting your account. What are you afraid of?” qui proposait de jouer à la roulette Russe avec son compte Facebook.
  • Tchat facebook qui peut être intégré à une autre application

Cette liste n’est pas exhaustive mais nous avons choisi ici de vous faire comprendre le fonctionnement général des APIs que nous rencontrons dans la vie de tous les jours, au détour d’un bouton like notamment !

Conclusion

Ainsi les api permettent de faciliter l’usage d’un web social, toutefois, jusqu’où vont elles ? Jusqu’à quel point se connecter à un site via facebook signifie lui offrir ses données personnelles ? Des sites comme takethislollipop ont soulevés ces problèmes pour un résultat choc destiné à marquer les esprits. Et en cliquant nonchalemment sur le bouton “se connecter”, vous êtes vous demandés où vos données allaient transiter et ce que ce site en ferait ?

Nous tâcherons donc aussi de nous intéresser aux Conditions Générales d’Utilisation de ces APIs et la réutilisation des données qu’elles permettent. Il est en effet important de noter que certains sites les utilisant peuvent présenter des comportements non prévus par les réseaux sociaux et ainsi se faire interdire a fortiori (on pensera notamment au principe de socialroulette).

Sources :
https://dev.twitter.com/docs/api/1.1
https://developers.facebook.com/blog
www.fr.wikipedia.org
http://graphism.fr/compendre-le-social-graph-de-facebook-en-3-minutes/

Auteurs : Nicolas DAVID & Sylvain PALOMINOS
Encadrant : Morgan MAGNIN
Licence Creative Commons

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>