TP : utilisation de l'API REST de Facebook + Google Maps

De $1

Version de 22:13, 19 Avr 2024

cette version.

Revenir à liste des archives.

Voir la version actuelle

Introduction

Nous allons développer un projet "fil rouge" qui va s'étendre sur plusieurs séances. Il s'agira d'un jeu multi-joueur mettant en oeuvre des "contacts" sur facebook. Dans le TP d'aujourd'hui on va apprendre à utiliser l'API REST de FaceBook et utiliser également Google Maps pour visualiser sur la carte les contacts d'une personne.

Les allergiques à FaceBook où ceux qui ne l'ont jamais utilisé, mettez-vous en binome avec ceux qui l'utilisent ! Ou bien créez un compte facebook bidon, ajoutez  comme amis des collègues de la classe, cela nous sera utile pour faire les TPs. Nous avons choisi FaceBook car il est un des services emblématiques du web 2.0, qu'il utilise des technologies modernes, des modèles de métadonnées issus des travaux sur le web sémantique (le schéma OpenGraph), etc.

Aujourd'hui, résumé en une phrase, nous allons créer en Java une application sur facebook qui récupère la ville de naissance d'un utilisateur et de ses amis, et affiche toutes ces villes sur une carte avec l'api de google maps.

Création de l'application sur Facebook

Pour simplifier les choses, nous vous fournirons des clés d'API et une application/squelette pour développer. La procédure normale est personnelle est plus lourde : il vous faudrait normalement vous inscrire sur la page  des developpeurs,  Il avoir un compte facebook, vérifier votre identité (par téléphone/sms mais bizarrement ça ne marche pas pour la France, et donc la seconde méthode consiste à entrer sa carte bleue, ce qui est un peu difficile à mettre en oeuvre dans le cadre d'un TP !).

Principe de fonctionnement de notre application :

  • L'application est intégrée dans facebook : dans la page facebook qui contiendra l'application, une iframe HTML incluera l'application qui elle, pourra tourner sur un serveur externe. En phase de développement, nous utiliserons comme adresse externe http://localhost:8080/TP_1_facebook Cette application qui tournera donc sur votre PC sera incluse dans une page du domaine facebook.com
  • Cette application commencera par indiquer l'identité de l'utilisateur de facebook qui exécute l'application (ces informations sont encryptées à l'aide d'une clé qu'on obtient en s'inscrivant sur le site des développeurs, aujourd'hui nous en fournissons une pour tout le monde)
  • Ensuite, on demande à l'API de facebook le détail des actions possibles par l'application pour l'utilisateur qui vient de s'authentifier (accèder à ses données confidentielles, publier sur son mur, accèder aux données de l'utilisateur quand il est offline, les lieux de naissances et anniversaires des amis (permissions dites "étendues"), etc).
  • Si l'application a besoin de certaines actions qui ne sont pas autorisées, elle demande à l'utilisateur s'il est ok pour accorder les permissions correspondantes ("cette application va consulter votre date d'anniversaire, êtres vous d'accord ?")
  • Si l'application obtient tous les accès dont elle a besoin, elle va chercher les informations correspondantes en utilisant l'API facebook. Par exemple, dans notre cas, récupérer la lsite des amis avec le lieu de naissance, leur nom, leur adresse, etc...
  • C'en est fini de la partie "facebook" ! On va ensuite afficher les "lieux de naissance" des amis sur une carte Google Map !

Création d'un projet de développement sous Eclipse ou Netbeans (ou autre si vous maitrisez l'outil)

Le projet devra être de type "application web" puisque nous allons réaliser le code en java/jsp/servlets/javascript/html etc. Par la suite nous ferons du HTML5, vous verrez !

 

L'application sur facebook a certain parametres, on utilise l'application qui a ete create :

public String appId = "148984718491784";

public String appSecret = "484c30ed7c149711c62fcc7c23a0ec70";

public String appUrl = "http://apps.facebook.com/testing_tp/";

Le nom de projet "TP_1_facebook" et URL de projet doit etre http://localhost:8080/TP_1_facebook/;

Vous devez cree un projet Java Web. Le cycle de vie notre application: 1) permission d'utilisateur de travaille avec l'application 2) authentication (optional) 3) prendre l'information que nous besoins

 life_cycle.png

 

On utilisera le protocol OAuth 2.0 pour faire l'authentication.

Tout les response l'api sont en JSON.

Les liens utile: 

Google Maps API V3 

Facebook Graph API 

Facebook permissions

Facebook authentication