Synthèse et ouverture – Vers l’API et au delà –

A la base pensé comme une vitrine statique, le web a su se diversifier en proposant, au-delà de documents scientifiques, de plus ne plus de divertissements. Avec l’apparition des blogs et a fortiori de la communication instantanée, le web social se dessinait déjà mais son apogée est arrivée avec l’avènement de facebook. Les réseaux sociaux deviennent notre nouveau quotidien. Ainsi pour qu’un site soit “efficace” son intégration au sein des réseaux sociaux est cruciale. C’est ce que permettent les APIs : lier notre environnement (web) à ces plateformes de relations.
Que nous a valu une telle évolution ? Notre goût pour le sur mesure et notre besoin de personnalisation et de contact plus direct sans doute.
Un signe de ras le bol à l’horizon ? Il ne semble pas, le règne des réseaux sociaux paraît stable et ne pas sourciller.

Alors maintenant lecteurs, à vos apis, prêts ? Produisez !

 

Près de 6 mois se sont en effet écoulés au cours desquels nous avons tout fait pour familiariser nos interactions avec les apis. Au cours de ce travail de veille, nous avons donc décidé de dresser un panorama des apis sociales pour ensuite nous concentrer sur celles qui nous parlent le plus, à savoir twitter et facebook et peut être la plus facile d’usage twitter, dans un soucis de simplicité et d’universalité de la portée de ces articles.

Le contexte de cette étude repose donc sur le web 2.0, un web qui se veut social et que les internautes veulent personnalisables et plus proche d’eux pour optimiser leur expérience des contenus.

Article 1 : Lors de cette introduction, nous avons présenté les concepts d’API et de réseau social servant de mise en bouche à cette veille technologique.

Article 2 : Ce second article fut l’occasion de nous consacrer aux fonctionnalités offertes par les 2 géants du web social : twitter et facebook. Concernant twitter, nous avons décrit ici les différents types d’API ainsi que ses éléments constitutifs, des tweets, aux followers et autres concepts mis en place avec Larry. Pour facebook, nous nous sommes intéressés au fonctionnement même de facebook en présentant le concept de socialgraph.

Article 3 : Cet article a été l’occasion de présenter les CGU de Twitter. Seules celles concernant l’utilisation et la création d’applications utilisant le système d’API son évoquées. Cela nous a permis de découvrir les limitations imposées par le réseau, ainsi que les obligations auxquelles sont soumis les développeurs.

Article 4 : Lors de cette quatrième étape nous avons exposé comment fonctionne la création d’une application Twitter, ainsi que les démarches à effectuer sur le site web. Ensuite, nous avons montré les mécanismes généraux d’authentification via une API en utilisant pour l’exemple une bibliothèque pour java.

Article 5 : Ce cinquième billet nous a permis de recadrer le plan de notre étude. En effet, au lieu d’exposer les étapes de développement d’une application basée sur les réseaux sociaux, nous avons préféré survoler les bibliothèques permettant d’utiliser les fonctionnalités de Twitter en java, C++, javascript et php. Il en est ressortit que les bibliothèques pour les langages web sont en plus grands nombres et plus complètes que celles des langages de programmation où elles peuvent être parfois inexistantes.

Article 6 : Dans cet article nous avons tout d’abord parlé des CGU de Facebook et plus particulièrement celles touchant à l’utilisation de la plateforme API. Ces conditions n’ont rien d’exceptionnel comparées à celles de Twitter précédemment évoquées, avec un flou sur l’usage des données transmises à Facebook. La seconde partie ouvre le sujet en traitant de l’importance prise par ces réseaux sociaux dans le Web 2.0. Servant aujourd’hui à la fois d’outils de partage,  de vitrine commerciale voire de tribune politique, ce morceau social du web a une emprise bien réelle sur notre monde avec laquelle nous devons composer.

Concernant nos impressions quant au sujet des API des réseaux sociaux, nous n’avions jamais eu l’occasion ni la nécessité d’utiliser les API. Nous nous limitions alors juste à l’usage normal des réseaux sociaux. C’est donc sans connaissance préliminaire que nous nous sommes lancés dans ce sujet qui a parfois pris la tournure d’une expédition à la découverte du monde des APIs.

Bien qu’il existe de nombreux tutoriels sur l’usage des APIs à la fois sur les sites officiels mais aussi sur des articles rédigés par des internautes faisant partager leurs compétences, lorsque l’on veut pousser un peu plus loin la recherche sur le fonctionnement de ces fonctionnalités les choses se corsent en particulier à cause de la diversité des fonctionnalités (comme par exemple la plateforme facebook).

Si le temps nous le permettait, nous continuerions cette veille en proposant le développement d’une véritable application, comme nous l’avions souhaité au départ. Toutefois, l’intérêt majeur restait de découvrir les apis dans un cadre suffisamment large.
Un autre point intéressant serait d’étudier en détail les APIs non présentées pour les réseaux sociaux cités dans nos billets.

Plan du Rapport d’étude

  1. Présentation du web social

    1. Historique

    2. Principales plateformes sociales

  2. Le but des apis

    1. Définition

    2. Le cas facebook

    3. Le cas twitter

  3. Les possibilités offertes

    1. Un engouement croissant

    2. Une communauté dédiée

 

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

Le poids du Web social

Voici donc notre dernier article sur les API des réseaux sociaux. Comme promis, nous allons exposer dans la première partie de cet article les conditions d’utilisation de Facebook concernant l’utilisation des outils et API pour ensuite ouvrir sur une réflexion sur le web social.

CGU Facebook (Utilisation de facebook plateform)

Nous ne pouvions définitivement pas passer à côté des CGU de Facebook que plusieurs d’entre nous seront vraisemblablement amenés à étudier s’ils envisagent de travailler un jour dans le monde de l’entreprenariat et du web.

Ici, nous nous attacherons donc à décrire la partie concernant l’utilisation des outils et de l’API. En effet, décrire l’ensemble des CGU ne rentre pas dans le cadre de nos articles et d’autres site le font très bien, de manière assez complète comme clubic ou encore numerama.

 

Utilisation des données :

Ce qui nous intéresse ici, c’est la partie “Autre sites web et applications” qui parle plus spécifiquement de l’usage des informations transmises à des applications ou à des sites tiers.

 

Cas des applications :

Lors de votre première connexion à une application facebook, celle-ci demande à avoir accès à vos informations facebook afin de vous identifier. Lorsque vous validez, le réseau social va transmettre l’ensemble des “informations publiques” de votre profil ainsi que “la liste de vos amis”.

 Autant “la liste de vos amis” est un terme assez transparent (liste de toute les personnes que vous avez acceptées en tant qu’amis), autant les “informations publiques” semblent plus obscures. Plus en avant dans cette déclaration on en trouve la définition.

Il est décrit qu’elles contiennent au minimum :

  • votre nom
  • votre photo de profil
  • votre photo de couverture
  • vos réseaux
  • votre sexe
  • votre nom d’utilisateur
  • votre identifiant
  • toutes les autres informations non configurées comme privées (les précédentes étant nécessairement publiques)

Selon la manière dont vous aurez paramétré votre compte, elles auront accès à plus ou moins d’informations sur vous. Dans le cas où une application nécessiterait des droits d’accès plus importants à vos informations comme par exemple à vos photos, elle devra le demander explicitement et il vous revient d’accepter ou non.

 

En revanche, il est possible de désactiver l’accès par des applications à vos informations par l’intermédiaire de l’onglet “Application” du paramétrage de votre compte.

Tant que l’application n’a pas été désactivée, elle pourra avoir accès à vos informations, les mettre à jour et les stocker. Une fois celle-ci supprimée de votre compte, elle n’y a bien entendu plus accès, mais elle garde celles qu’elle a pu collectées sur vous. Il faudra donc personnellement contacter les éditeurs des applications afin de leurs demander de supprimer ces informations.

 

Cas des sites web :

Lorsque vous désirez vous identifier sur un site web via facebook, il existe deux moyens de procéder.

  • soit le site va vous proposer de vous identifier via les outils sécurisés fournis par le réseau social
  • soit celui-ci va utiliser l’adresse mail de votre compte pour le site en question, l’envoyer à facebook (de manière sécurisée) afin de pouvoir associer les deux comptes

Une fois l’authentification faite, le site aura accès aux mêmes informations que les applications.

La présence de facebook peut aussi se faire de manière plus discrète via des modules sociaux tels que des boutons, des cases ou encore des actualités (comme par exemple les boutons “J’aime” ou des champs de commentaires avec votre photo de profil). Le plus souvent ils fonctionnent exactement comme des applications et récoltent les mêmes informations. Mais de son côté, facebook va lui aussi collecter des informations sur le site ainsi que les interactions effectuées via le module social.

 

Déclaration des droits et des responsabilités : https://www.facebook.com/legal/terms

 Cette déclaration regroupe toutes les directives de bonne conduite sur le site et ses applications afin d’assurer une bonne expérience utilisateur.

 Le paragraphe 9 s’intéresse plus particulièrement aux développeurs utilisant les outils et API de facebook.

 Ce paragraphe précise la manière dont doit se comporter le développeur de l’application quant à l’utilisation des données reçues. Il y est précisé qu’il ne peut en aucun cas en faire usage en dehors de son application. Il ne peut en aucun cas les transmettre à un tiers, ni les revendre, ni les conserver après que l’utilisateur lui ait demandé de les supprimer. Afin de signifier clairement à l’utilisateur l’usage qui en sera fait, une politique de confidentialité des données doit être publiée.

Facebook oblige aussi à se conformer à sa politique envers les utilisateurs quant à la mise disposition d’un moyen simple de contacter ou encore de supprimer le lien entre l’application et le compte utilisateur.

Par ailleurs, le réseau social se donne certains droits comme celui de rendre la plateforme regroupant API et outils payante, de modifier l’application par ajout de publicités ou informations diverses, voire même de faire une application similaire à la vôtre…

 N’est décrite ici qu’une partie des conditions d’utilisation concernant les outils de développement car elles sont présentées à travers une dizaine de documents différents. Chaque terme important tel que les informations publiques ou la notion de “personnes de manière à ce qu’elles n’aient plus aucun lien avec vous” ne sont pas redéfinies explicitement mais des liens vers d’autres documents donnent des éléments de réponse et en font une quête intéressante.

 

Vous savez donc maintenant par où transitent vos données et ce qui peut leur arriver (en partie)… mais au final, pourquoi se logue-t-on avec Facebook ? Pourquoi retwittons nous une information ? Pourquoi les plateformes de musiques proposent de se connecter aux réseaux sociaux ? Pourquoi les e-boutiques vous invitent elles à commenter un produit acheter ?

Pour résumer, d’un point de vu développeur comme utilisateur, qu’est ce qui explique cette floraison des api sociales ?

L’un d’entre nous a travaillé durant son stage ingénieur dans l’agence Web Colorz, en tant que chef de projet et au cours des échanges avec les clients, les fonctionnalités sociales des sites étaient souvent abordées. En effet : Le web est passé d’un statut statique à un statut collaboratif, et avec ce web 2.0 c’est un web social qui s’est dessiné. Ce web social s’appuie en effet sur une demande de l’internaute qui souhaite plus de personnalisation et plus de recommandation des autres personnes comme lui.

 Ainsi, on peut voir dans les commentaires des boutiques en ligne un prémice de ces API sociales que des géants comme facebook ont proposé de généraliser en offrant aux créateurs de sites des possibilités d’interconnexions entre différentes plateformes et ce de façon simplifiée.

Intégrer une API social sur son site va en effet permettre à une boutique ou un blogueur de toucher une grande communauté de personnes, de mieux positionner et segmenter son offre grâce aux préférences des profils sur les réseaux sociaux, de fidéliser ses consommateurs en leur proposant de partager des articles ou d’y réagir et enfin de se promouvoir de manière indirecte par ce même partage.

C’est donc une stratégie à part entière, à faible coût et pensée pour cibler son public dans un web où les géants sociaux semblent s’intégrer à tout en dressant une nouvelle table de références des utilisateurs, véritable base de données (ou plutôt fichage de l’internaute) dans laquelle pourront venir piocher les services externes de manière réglementée (comme nous vous l’avons fait comprendre avec l’étude des CGU) et que l’utilisateur continue d’alimenter.

Ce Web social s’immisce ainsi dans notre réseau et même nos navigateurs, en atteste la socialAPI de firefox permettant de donner à notre navigateur une allure “facebook like” en rajoutant la barre latérale bien connue du réseau social où d’autres features liées au contenu des réseaux sociaux.

Il est donc important lors de la création d’un site de penser cette part de sociale comme un plus et une assurance de meilleure audience, si toutefois les réseaux sociaux ciblés sont les bons (professionnel, social, microblogage).

Aristote n’avait semble-t-il pas tort lorsqu’il décrivait l’homme comme “un animal social”. En tout cas, le développement du web semble bel et bien aller dans ce sens.

Nous reviendrons donc dans 2 semaines pour une synthèse sur ces quelques mois dans laquelle nous résumerons les points importants qui traduisent l’évolution de notre pensée vis à vis de cette découverte des API sociales ainsi que le plan de notre rapport.

Sources :

 

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

Twitter et java, C++, php, javascript

Si nous avions au départ prévu de présenter les étapes de développement d’une application avec Twitter (notamment pour sa facilité d’utilisation dûe au nombre restreint de fonctionnalité et pour la pertinence des recherches à effectuer, l’information y étant à vocation plus publique) nous nous sommes dit que développer et présenter l’utilisation d’un langage était quelque peu réducteur face à l’immensité des librairies présentes. C’est pourquoi aujourd’hui nous allons revenir sur ce point en laissant l’aspect “développons une application ensemble” de côté et en préférant vous accompagner dans le choix de la librairie vous convenant.

Précédemment, nous avons donc vu les principes fondamentaux d’une application Twitter (création, obtention des informations, connexion). Nous allons donc prolonger cette démarche en nous appuyant sur quatre langages : Java, C++, PHP, JavaScript dont nous vous présenterons l’utilisation pour l’authentification, l’envoi d’un tweet et la recherche d’un message. Ces APIs permettent d’avoir accès aux fonctions de Twitter sans avoir à passer par les requêtes HTTP. Bien que non officiels, elles sont publiées sur le site Twitter pour les développeurs :

 

Quelques informations préliminaires :

  • Twitter utilise une syntaxe précise pour la formulation des requêtes de recherches. (La syntaxe des requêtes est expliquée ici)
  • Les retours des requêtes se font sous la forme d’une chaîne de caractère arborescente qui contient l’ensemble des informations du tweet. Cela va du texte du message au fuseau horaire de l’utilisateur émetteur du tweet. (La structure exhaustive est décrite ici)

Java

Connexion :

Comme pour l’article précédent, nous allons utiliser l’API Twitter4J : http://twitter4j.org. Nous avons déjà vu comment se connecter via l’objet ConfigurationBuilder et une TwitterFactory.

Recherche :

Une fois la connexion effectuée, il est simple d’effectuer une recherche de tweets grâce à l’objet Query qui va représenter le requête à transmettre à Twitter. Elle prend la forme décrite sur le site de Twitter comme par exemple q=socialapi qui va servir à chercher les tweets contenant le texte socialapi. La méthode search(ObjetQuery) va permettre d’effectuer la requête et son résultat sera stockée dans un objet QueryResult. Ensuite il devient facile d’obtenir les tweets par la fonction getTweets() puis les différents éléments les constituant comme par exemple getUser() pour obtenir l’objet utilisateur.

Poster un message :

L’objet Twitter contient la fonction updateStatus(TextDuTweet) qui permet de publier un tweet sur le compte enregistré.

C++

 Twitter propose la bibliothèque twitcurl pour le C++.  Elle fournie un ensemble de fonctions compatibles avec la dernière version de l’API Twitter et le site https://code.google.com/p/twitcurl/ fournit toutes les instructions nécessaires à l’installation.

 Authentification :

L’objet twitcurl est la base de la connexion entre une application C++ et Twitter. Une fois l’objet créé, il faut définir les information d’authentification via les méthodes suivantes :

 getOAuth().setConsumerKey();

getOAuth().setConsumerSecret();

getOAuth().setOAuthTokenKey();

getOAuth().setOAuthTokenSecret();

 Une fois cela fait, l’objet twitcurl est configuré et va pouvoir servir pour envoyer les requêtes et récupérer les informations.

 Recherche :

La méthode search(MessageAChercher, NombreDeTweet) va envoyer une requête de recherche constituée des paramètres q=MessageAChercher et count=NombreDeTweet. Le retour se fait sous la forme d’une chaîne de caractère représentant le résultat tel quel venant de Twitter que l’application pourra décomposer pour l’analyser.

Poster un message :

A l’image de Twitter4J, twitcurl fournit une fonction statusUpdate(Message) qui permet de publier un tweet.

PHP 

Contrairement au Java et au C++ où très peu de bibliothèque existent, Twitter propose une très grande variété de projets visant à fournir les fonctionnalités en PHP. Parmi toutes, nous avons décidé de présenter Zend Framework faisant partie des plus élaborées.

L’objet principale est Zend_Service_Twitter. Il est composé de sous objets suivant l’arborescence présentée sur le site de développement de Twitter, comme par exemple le statut de l’utilisateur, son compte … depuis lesquels seront appelées les différentes fonctions de l’API.

 Authentification :

Par l’intermédiaire de cette bibliothèque, l’authentification est rapide. Il suffit de créer un objet Zend_Service_Twitter initialisé avec un tableau de deux valeur :

    ‘username’ => NomDUtilisateur ,

    ‘accessToken’ => TokenUtilisateur

 Il suffit ensuite d’appeler la méthode verifyCredentials() du sous objet account. Pour terminer la session de l’utilisateur il faudra appeler la méthode endSession().

 Recherche :

La recherche de tweets se fait par l’intermédiaire d’un objet spécifique qui retourne le résultat sous format JSON ou Atom. De futures évolutions de la bibliothèque permmettront la prise en compte des réponses XML.

 Tout d’abord il faut créer un objet Zend_Service_Twitter_Search auquel on spécifiera le format de sortie des données (‘json’ ou ‘atom’). Ensuite il faut appeler la méthode search(TexteAChercher, array(Arguments => Valeur)). Les arguments correspondent a ceux définis sur le site de Twitter dans la section API search https://dev.twitter.com/docs/api/1.1/get/search/tweets.

 Poster un message :

Le poste d’un tweet se fait par l’intermédiaire de la fonction  update(Message) à appeler depuis le sous objet status.

JavaScript 

 Enfin nous allons voir la bibliothèque JavaScript/nodeJS : TwitterJSClient.

Cette bibliothèque de fonctions JavaScript  est encore en développement mais les membre sont très actifs. Toutes les fonctionnalités ne sont pas implémentées.

 Authentification :

Pour l’application et l’utilisateur, il faut créer un objet Config qui contiendra les tokens et identifiant de l’utilisateur et de l’application.

Il faut ensuite créer l’objet Twitter qui servira d’élément centrale prenant en argument le Config créé juste avant.

 Autres fonctionnalités :

Bien que les fonctions de recherches et de poste de tweets ne soient pas présentes telles quelles, il est possible par exemple d’obtenir la majorité des informations voulues comme les données d’un message ou les tweets d’utilisateurs via des fonctions comme getUserTimeline() ou getTweet().

 

Conclusion 

 En observant les bibliothèque de fonction prenant en charge l’API de Twitter des 4 langages précédents, nous voyons que la couverture est très variable. En C++ la seule bibliothèque proposée par Twitter prend en charge les fonctionnalités principales, mais n’est pas complète et non mise à jour depuis longtemps. Elle ne permet pas, par exemple, de parser le retour de la recherche de tweets sous la forme de plusieurs objet. En PHP, il existe un florilège d’APIs prenant en compte la totalité des fonctionnalités.

On peut néanmoins remarquer que les langages adaptés au web (PHP, Javascript …) couvrent beaucoup mieux l’API de Twitter que les langage permettant de coder des logiciels (ce qui paraît compréhensible). Pour ces derniers Java est a privilégier avec Twitter4J.

Vous voilà donc paré à l’utilisation de l’API twitter mais attention à ne pas faire n’importe quoi ! Tout d’abord, respecter les CGU et par ailleurs, ne pas suivre le chemin de Larousse ! Nous conclurons en effet cet article par un fait d’actualité, l’affaire remontant au début de cette semaine (4° semaine de janvier).
En effet, si vous pouvez rechercher des tweets grâce à ces APIs, n’oubliez pas que si vous souhaitez en exploiter le contenu il convient de citer et de prévenir les auteurs. En effet, le droit de citation ne peut être évoqué dans le cadre d’un tweet si l’ensemble du tweet est utilisé ! Point qu’avait semble-t-il omis Larousse dans son ouvrage “Les perles des tweets et du Net” qui a donc été retiré de la vente.

 

Sources :

 

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

Création d’applications Twitter

Dans ce nouvel article nous allons passer de la théorie à la pratique en créant une application basée sur l’API de Twitter.

Nous avons choisit de nous baser sur l’API de l’oiseau bleu plutôt que sur celles d’autre réseaux sociaux comme Facebook car elle a l’avantage d’être assez légère et bien documentée, facilitant une prise en main rapide. De plus les informations diffusées sur Twitter ont un aspect beaucoup plus publique et informatif et nous semblaient plus intéressant pour réaliser de petites applications simples (comme la comparaison d’actualités via les hashtags, le recensement de tweets contenant une actualité etc)

 

Création du projet

 

La création d’une application Twitter commence sur dev.twitter.com.

Une fois connecté à votre compte, il vous faut allez dans l’onglet “My application” de votre compte. Vous y trouverez la liste de tout les applications liées à ce compte. Le bouton “Create a new application” vous permettra de renseigner les informations à propos du vôtre et de valider la charte d’utilisation de l’API.

Félicitation, nous allons pouvoir commencer.

 

Principes fondamentaux

Avant d’exploiter les fonctionnalités de Twitter, l’application a besoin de fournir des informations lui permettant d’être autorisée à le faire.

Lors de sa phase d’initialisation, elle va devoir renseigner quatre clef. Vous les trouverez en sélectionnant votre projet dans le menu “My application” et en allant dans l’onglet “OAth” :

  • Consumer key
  • Consumer secret    ⇒ Ces informations permettent à l’application de se connecter à la manière d’un utilisateur. Elles sont donc liées à un utilisateur.
  • Access token key
  • Access token secret    ⇒ Ces informations sont liées à l’application et lui permettent de s’identifier.

Une fois ces informations renseignées, via les fonctionnalités de OAuth, l’application va pouvoir se connecter et utiliser les fonctionnalités de l’API de Twitter.

Exemple simple d’application via les API tierses

L’API que twitter met a disposition se compose essentiellement de requêtes HTTP, ce qui n’est pas forcément pratique selon le langage de programmation utilisé.

Heureusement pour nous, des surcouches à cette API ont été développées par des tiers comme par exemple Twitter4J, qui permet d’utiliser l’API en Java et que nous utiliserons par la suite.

 

Dans le cas de l’authentification, cela se fait en sept ligne des codes (seulement). Pour cela il suffit de créer un objet ConfigurationBuilder qui contient les informations basique de configurations.

Les clés d’authentification seront ajoutées via les fonctions

setOAuthConsumerKey(” LaCléIci “);
setOAuthConsumerSecret(” LaCléIci “);
setOAuthAccessToken(” LaCléIci “);
setOAuthAccessTokenSecret(” LaCléIci “);

Il ne reste plus qu’a invoquer une TwitterFactory pour créer l’objet Twitter permettant de par la suite d’appeler les méthodes associées.

 

La suite au prochain épisode… (nous apprendrons à utiliser les principales fonctionnalités : recherches de tweets, récupération de leurs informations, post de tweets)

Sources :

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

Les CGUs de Twitter

Connaître l’API, c’est bien. Avoir lu les conditions d’utilisations, c’est mieux !

Nous ne vous ferons pas l’affront de reprendre chaque paragraphes de “Developer  Rules of the Road” et de les détailler un par un. Mais certains points sont à connaître et peuvent surprendre. Toutes les mentions légales habituelles (conditions sujettes à changement, droit d’auteur …) ne seront pas explicitées.

Rules of the Road

Dans le premier paragraphe, il nous est signalé que l’utilisation de l’application développée est limitée à 1 millions d’utilisateurs uniques par jours et les objets implémentables sur site web à 10 millions d’impressions.

Dans le cas où l’on nécessiterait un accès à un nombre plus important il faut contacter l’équipe de Twitter afin de discuter des autorisations et conditions pour un usage plus massif.

Twitter Content

Ce paragraphe s’attache à la définition de l’usage qui peut être fait du contenu obtenu par le biais des fonctionnalités de l’API.

Le concepteur de l’application à pour obligation de faire apparaître le nom Twitter et le logo afin d’identifier la source des informations produites via l’API.

Dans le cas où l’application nécessite de recréer les parties essentielles de Twitter (comme la gestion du compte, l’affichage de la timeline d’accueil …), le service ne pourra pas être pré-installé sur des périphériques.  Il ne peut par ailleurs ni demander financement pour sa distribution, ni rediriger les nouveaux utilisateurs vers la page d’inscription du site, ni utiliser les données pour alimenter un réseaux social parallèle. Tout cela signifie que les fonctions “critiques” comme l’inscription ou l’affichage d’éléments clefs de Twitter, présentes dans l’API, ne peuvent en aucun cas être “court circuitées” par des fonctions à même vocations implémentées par d’autres codes. Cela ayant pour but de préserver l’intégrité de Twitter.

Principles 

Ce paragraphe décrit la philosophie d’utilisation de Twitter et de son API. En acceptant ces conditions, le développeur s’engage à respecter quatre principes  pour ne pas “surprendre” l’utilisateur :

- respecter l’intégrité des contenus twittés

- demander les droits pour envoyer et modifier des tweets, modifier le profil, ajouter des mot-dièse

- ne pas utiliser de logos pouvant induire en erreur l’utilisateur

- réutiliser le design de Twitter

Par ailleurs, il convient de :

- ne pas diffuser de spam

- respecter la vie privée de l’utilisateur

- être un bon partenaire de Twitter (c’est à dire ne pas nuire à Twitter et donc respecter les CGUs : tout service utilisant l’API doit donc inclure les CGUs de Twitter)

Les fonctionnalités de Twitter dans l’application

Cette partie décrit les fonctionnalités qu’un concepteur doit obligatoirement faire apparaître dans son application.

Les utilisateurs de Twitter doivent pouvoir se logguer à leur compte pour utiliser le service. Pour ceux n’ayant pas de compte, ils doivent être redirigée vers le site afin de pouvoir s’en créer un.

Une fois l’utilisateur connecté il est obligatoire d’afficher ses principales informations comme son avatar et son nom afin qu’il sache qu’il est connecté et que les informations produites sont mises en relation avec son compte.

Autres termes légaux

Cette dernière partie contient tous les aspect légaux “habituels” qui sont présents dans la plupart des conditions d’utilisation et  qui nous intéressent moins dans le cadre de cette étude.

Conclusion
Dans les articles à venir, nous tâcherons de vous présenter les bases concernant la programmation avec l’API de Twitter. Nous reviendrons par ailleurs en détail sur les CGUs de Facebook dans un autre billet.
Auteurs : Nicolas DAVID & Sylvain PALOMINOS
Encadrant : Morgan MAGNIN
Licence Creative Commons

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

Bienvenue aux APIs des merveilles

Larry a pris la place des pigeons voyageurs, Facebook celle de nos albums photos, ce n’est pas un secret, les réseaux sociaux représentent une part importante du trafic internet mondial. Mais leur succès n’est pas seulement le miroir des connections sur leurs sites respectifs. Une masse importante des visiteurs et du contenu généré provient en effet d’applications tierces intégrant des fonctionnalités sociales via des interfaces de programmation (API) mises à disposition des développeurs.

Précisons tout d’abord ces termes ensemble afin de clarifier le sujet :

  • API
    Les interfaces de programmations, aussi désignées par API, sont un ensemble de classes, de méthodes et de fonctions mises à disposition par un éditeur de logiciel, de sites web, de bibliothèques, pour permettre à un tiers de développer un plugin ou une application en se basant dessus.
  • Réseaux sociaux
    A l’origine, ces réseaux représentent un groupe de personnes partageant des intérêts ou des liens personnels pouvant facilement se mettre en relation les uns avec les autres. Sur internet, ces réseaux sont devenus beaucoup plus massifs et les points communs entre les utilisateurs reliés sont devenus de plus en plus mince. Ils servent en particulier à partager sa vie, ses expériences, des médias voire se créer un réseau.

Bien entendu Facebook et Twitter ne sont pas seuls exemples, même s’ils comptent parmi les plus importants (et influents). On peut aussi citer :

  • Google + qui fut d’abord pensé comme un concurrent à Facebook.
  • Pinterest qui se base sur l’aspect collection.
  • Instagram qui est beaucoup plus orienté vers le partage de photos.
  • Tumblr qui est orienté microblogage.
  • LinkedIn qui se tourne vers le réseau professionnel.

Encadrée par Morgan MAGNIN pour l’École Centrale de Nantes, notre première rencontre a permis de décomposer cette étude selon 2 grands axes :

Nous aborderons au cours des premiers mois les possibilités fournies par les APIs de quelques uns de ces réseaux sociaux tout en essayant d’évaluer et relativiser les risques vis à vis des données personnelles qui sont alors sollicitées. (N’hésitez pas à partager des sites utilisant ces ces APIs en commentant nos articles).

Dans un second temps, nous envisageons de nous tourner vers l’utilisation technique d’une de ces APIs dans le cadre d’un projet que nous rendrions disponible via Github, ce point sera rediscuté avec notre encadrant dans les mois à venir.

Cet article comme les prochains, ainsi que nos éventuels codes sont placés sous licence Creative Commons. Vous pouvez donc librement réutiliser leur contenu (hors utilisation commerciale) en citant clairement nos noms : Nicolas DAVID et Sylvain PALOMINOS ainsi que le cadre de cette étude, à savoir : SOCIALAPI13.

Nous vous donnons donc rendez vous d’ici le 25 Octobre pour une présentation détaillée des possibilités offertes par les APIs de Twitter et de Facebook !

 

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