Intégration de l'api Google Calendar en REST dans une application C# Version 1.0
|
|
- Anne-Claire Rondeau
- il y a 7 ans
- Total affichages :
Transcription
1 Intégration de l'api Google Calendar en REST dans une application C# Version 1.0
2 2 Introduction : Ce tutoriel s adresse aux développeurs souhaitant intégrer l API Google Calendar dans leur application en REST. Il expose brièvement le protocole oauth 2.0 utilisé par l API Google Calendar, décrit comment créer une demande d autorisation d accès et expose les principales méthodes d accès au calendrier. A propos du protocole oauth2 : OAuth2 est la version 2 du protocole OAuth. Ce protocole permet à des applications tierces d obtenir un accès limité à un service disponible via HTTP par le biais d une autorisation préalable du détenteur des ressources. L accès est demandé par le client, qui peut être un site internet ou une application mobile. Si les ressources n appartiennent pas au client, alors ce dernier doit obtenir l autorisation de l utilisateur final, sinon il peut directement obtenir l accès en s authentifiant avec ses propres identifiants La version 2 est censée simplifier la version précédente du protocole et à faciliter l interopérabilité entre les différentes applications. 1- Enregistrement de votre application dans la console de développement Google : Avant toute chose, votre application doit être enregistrée dans la console de développement Google, pour cela, vous devez vous rendre à l adresse et créer un nouveau projet après s'être identifié avec un compte Gmail: Ensuite, vous devez récupérer le certificat de votre application en allant sur APIs & auth, Credentials, puis Create Client Id, vous aurez l écran suivant :
3 3 Sélectionnez ensuite installed Application, puis Other, Cliquez ensuite sur Create Client ID Ensuite, télécharger le fichier JSON qui contient le certificat de votre application.
4 4 Le fichier qu on appellera Credentials.Json aura cette forme : "installed": "auth_uri":" "client_secret":"xxxxxxxxxxxxxxxxxxxxxxxxxx", "token_uri":" "client_ ":"", "redirect_uris":[ "urn:ietf:wg:oauth:2.0:oob", "oob" ], "client_x509_cert_url":"", "client_id":"xxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com", "auth_provider_x509_cert_url":" Remarque : Dans l onglet consent screen, vous pouvez personnaliser la page de demande d autorisation que verront les utilisateurs. 2- Création de la demande d autorisation d accès à l agenda, et récupération des Tokens: Pour que votre application puisse accéder à l agenda d un utilisateur, ce dernier doit donner une autorisation sous forme de Tokens, Nous allons développer les étapes pour créer la demande d autorisation qui sera affichée aux utilisateurs: 2.1 Objet Credential : Cet objet va recevoir le certificat de l'application et sera chargé à partir du contenu du fichier Credential.Json que vous auriez récupéré précédemment. Public class installed public Credential credentials get; set; public class Credential public string auth_uri get;set; public string client_secret get;set; public string token_uri get;set; public string client_ get;set; public string[] redirect_uris get;set; public string client_x509_cert_url get;set; public string client_id get;set; public string auth_provider_x509_cert_url get;set;
5 5 2.2 Demande d autorisation d accès: Après avoir récupéré le contenu le certificat de l'application (credential), nous allons construire l'url à laquelle seront redirigés les utilisateurs dans le processus de demande d'autorisation, la méthode suivante expose la façon de construire l'url. public string GenerateGoogleOAuthURL (Credential ocredential) string surlgenerategoogleoauthurl = " =0&redirect_uri= 1&response_type=2&client_id=3&state= 4&access_type= 5&approval_prompt=6"; string surlprivatefeed=" string sredirecturl="urn:ietf:wg:oauth:2.0:oob"; string sresponsetype="code"; string sgenerateurlstate = string.empty; string sgenerateurlaccesstype="offline"; string sgenerateurlapprovalprompt="auto"; string scope=urlencodeforgoogle(surlprivatefeed).replace("%20","+"); string redirect_uri_encode=urlencodeforgoogle(sredirecturl); string surl = string.format(surlgenerategoogleoauthurl, scope,redirect_uri_encode, sresponsetype, ocredential.client_id, sgenerateurlstate, sgenerateurlaccesstype,sgenerateurlapprovalprompt); return surl; private string UrlEncodeForGoogle(string url) string UnReservedChars = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz _.~"; var result= new StringBuilder(); foreach (char symbol in url) if(unreservedchars.indexof(symbol)!=-1) result.append(symbol); else result.append('%'+string.format("0:x2",(int) symbol)); return result.tostring(); Remarque : La procédure UrlEncodeForGoogle permet d encoder les caractères non admis dans l Url.
6 6 L'url précédemment créée permettra aux utilisateurs de donner leur consentement, quand on navigue vers cette Url on a cet écran : Lorsque l utilisateur clique sur accepter, son code d accès à l application est affiché comme illustré sur l image suivante : La première étape qui consiste à récupérer l autorisation de l utilisateur sous forme d un code est finie. L étape suivante consiste à récupérer les Tokens à partir du code d'accès.
7 7 2.3 Objet UserToken: Les Tokens sont des chaines de caractères générées par le serveur d autorisation et sont émis lorsque le client en fait la demande, Access Token : Permet au serveur de ressources d autoriser la mise à disposition des données d un utilisateur. Il a une durée de vie limitée qui est définie par le serveur d autorisation (dans ce cas de Google Calendar, sa durée est de 60 minutes). Refresh Token : Délivré au même moment que le Token d accès(access Token) mais n est en revanche pas envoyé lors de chaque requête du client vers le serveur de ressources. Il sert simplement rafraichir le token d accès lorsque celui-ci est arrivé à expiration. Pour manipuler les Tokens dans le code nous allons créer un objet UserToken qui aura la structure suivante: public class UserToken public string Login get;set; public string access_code get;set; public string access_token get;set; public string token_type get;set; public string expires_in get;set; public string refresh_token get;set; public DateTime Refresh_date get;set; 2.4 Récupération des Tokens à partir du code d accès: Cette étape consiste à obtenir les Tokens d'accès, en partant du code récupéré précédemment par l'utilisateur, notez bien que dans le cas de Google Calendar, le code récupéré dans l étape 2.2 est valable pendant 10 minutes, passé ce délai le code est obsolète, il faudra donc l'échanger contre les Tokens pour pouvoir interroger le calendrier de l'utilisateur. La méthode suivant détaille comment obtenir les Tokens correspondant à l utilisateur à partir du code d accès:
8 8 public UserToken GetUserTokenByCode(string scode, Credential credential) string surlrefreshaccestoken = " string scontenttypeurlencoded = "application/x-www-form-urlencoded"; string sdataforgettoken = "code=0&client_id=1&client_secret=2&redirect_uri= 3&grant_type=4"; string sredirecturl = "urn:ietf:wg:oauth:2.0:oob"; string sgranttypegetcode = "authorization_code"; UserToken MyToken = new UserToken(); string result = string.empty; HttpWebRequest request = HttpWebRequest.Create(sUrlRefreshAccesToken) as HttpWebRe quest; request.method = WebRequestMethods.Http.Post; request.keepalive = true; request.contenttype = scontenttypeurlencoded; string param = string.format(sdataforgettoken, scode, credential.client_id, creden tial.client_secret, sredirecturl, sgranttypegetcode); var bs = Encoding.UTF8.GetBytes(param); try using (Stream reqstream = request.getrequeststream()) reqstream.write(bs, 0, bs.length); using (WebResponse response = request.getresponse()) var sr = new StreamReader(response.GetResponseStream()); result = sr.readtoend(); sr.close(); if (result!= null) JObject token = JObject.Parse(result); MyToken.access_token = (token["access_token"]).tostring(); MyToken.expires_in = (token["expires_in"]).tostring(); MyToken.refresh_token = (token["refresh_token"]).tostring(); MyToken.token_type = (token["token_type"]).tostring(); MyToken.Refreshdate = DateTime.Now; catch (WebException) throw; catch (Exception) throw; return MyToken; 2-5 Rafraîchissement du Token d accès : Avant de faire une quelconque opération sur l agenda google, on doit toujours s assurer que Token d accès est toujours valable, sinon la demande sera rejetée, La méthode suivante déroule le traitement nécessaire pour rafraîchir le Token d'accès, Il faut savoir que les Token d accès sont valables 1 heure à partir de leur obtention.
9 9 public UserToken RefreshAccessToken(UserToken ToKen, Credential credential) UserToken MyToken = null; WebRequest; HttpWebRequest request = HttpWebRequest.Create(Constante.UrlRefreshAccesToken) as Http string result = null; request.method = WebRequestMethods.Http.Post; request.keepalive = true; request.contenttype = Constante.ContentTypeUrlEncoded; string param = string.format(constante.dataforrefreshtoken, ToKen.refresh_token, crede ntial.client_id, credential.client_secret, Constante.GrantTyperefreshToken); var bs = Encoding.UTF8.GetBytes(param); tryusing (Stream reqstream = request.getrequeststream()) reqstream.write(bs, 0, bs.length); using (WebResponse response = request.getresponse()) var sr = new StreamReader(response.GetResponseStream()); result = sr.readtoend(); sr.close(); if (result!= null) JObject token = JObject.Parse(result); MyToken = new UserToken(); MyToken.access_token = (token["access_token"]).tostring(); MyToken.token_type = ToKen.token_type; MyToken.expires_in = DateTime.Now.ToString(); MyToken.refresh_token = ToKen.refresh_token; MyToken.LoginGmail = ToKen.LoginGmail; MyToken.access_code = ToKen.access_code; MyToken.UserNumber = ToKen.UserNumber; MyToken.Errone = ToKen.Errone; catch (WebException e) throw; catch (Exception ex) throw; return MyToken;
10 10 Nous avons à présent récupéré les tokens de l utilisateur, ce qui nous permettra d accéder à son agenda. 1- Exposition des principales méthodes d'accès à l'agenda: L'API Google Calendar autorise plusieurs méthodes pour la gestion des agendas des utilisateurs, nous allons dérouler les principales méthodes de gestion du calendrier principal.dans ce qui suit, nous travaillerons sur l agenda principal qui a pour identifiant le nom du compte associé (Si le compte Google de l utilisateur est Example@gmail.com, son agenda principal aura pour identifiant Example@gmail.com) 3-1 Les principaux objets utilisés: Pour faciliter la sérialisation des objets, nous avons gardé la même syntaxe que Google, L objet «Item» Contient toutes les informations relatives à un événement (rendez-vous) dans l agenda Google. public class Item public string summary get;set; public string kind get;set; public string etag get;set; public string id get;set; public string status get;set; public string htmllink get;set; public string created get;set; public string updated get;set; public string location get;set; public Creator creator get;set; public Organizer organizer get;set; public Start start get;set; public End end get;set; public string icaluid get;set; public int? sequence get;set; public List<Attendee> attendees get;set; public Reminders reminders get;set; public string description get;set; public string colorid get;set; public class Start public string datetime get;set; public string timezoneget;set; public class End public string datetime get;set; public string timezoneget;set; 3-2 Le format Json: L échange de données avec Google Calendar se fera exclusivement au format Json, pour cela vous aurez besoin d un outil pour sérialiser les objets au format Json, dans ce cas nous utiliserons la bibliothèque «Newtonsoft.Json»( Voici une méthode qui permet de sérialiser un objet item au format Json :
11 11 public string Serialize (Object oobject) JsonSerializerSettings settings = new JsonSerializerSettings(); settings.nullvaluehandling = NullValueHandling.Ignore; var json = JsonConvert.SerializeObject( oobject, Formatting.Indented, settings); return json.tostring(); Remarque : il est important d ignorer les propriétés nulles, sinon le Json sera généré avec la valeur null pour certaines propriétés la demande sera alors rejetée. 3-3 Lister les rendez-vous dans un agenda: Pour récupérer la liste des rdv dans un agenda, on exécute une requête HTTP en GET sur le serveur en incluant dans l'entête le Token d'accès, nous avons la possibilité d ajouter un tas de paramètres comme la date de dernière mise à jour, la date minimum de début, la date maximum de début. Public List<Item> GetAllEvents (UserTokenoUserToken, stringnextpagetoken="") Strings Url =" HttpWebRequest request; String result =null; JavaScriptSerializer serializer = new JavaScriptSerializer(); List <Item> EventList = newlist<item>(); HttpWebResponse repons = null; Request = (HttpWebRequest)HttpWebRequest.Create(String.Format(sUrl,oUserToken.Login)); request.method = WebRequestMethods.Http.Get; request.keepalive = true; request.headers.add(httprequestheader.authorization,string.format("bearer0",ousertoken.access_code)); request.timeout=3500; try repons =(HttpWebResponse)request.GetResponse(); WebResponse response=request.getresponse(); Var sr= new StreamReader(response.GetResponseStream()); Result = sr.readtoend(); sr.close(); RootObject jsonobject = serializer.deserialize<rootobject>(result); EventList = jsonobject.items; String nextpage = jsonobject.nextpagetoken; if (!String.IsNullOrEmpty(nextPage)) EventList.AddRange(GetAllEvents(oUserToken,nextPage)); catch(webexception) if(repons!=null&&repons.statuscode==httpstatuscode.forbidden) repons.close(); returneventlist;
12 12 Remarque : si le nombre de rendez-vous est important, Google renvoie plusieurs pages de résultats pour éviter des trames trop longues, pour savoir s il y a une trame supplémentaires de résultats on vérifie si le Token «nextpagetoken» contient une valeur, si c est la cas, il faut ré-exécuter la même requête en incluant ce paramètre pour récupérer le contenu de la page suivante. 3-4 Créer un rendez vous: Pour créer un rendez-vous, il faut exécuter une requête en POST en incluant comme paramètre dans l'entête le Token d'accès, et en dans le corps de la requête passer l'objet item au format Json. public bool insertevent(itemoitem,usertokenousertoken) bool IsInserted=false; string surlinsertevent=" string result=null; WebResponse response; Strings Url = string.format(surlinsertevent,ousertoken.login); String data = SerializeWithoutNullValues(oItem); HttpWebRequest request=httpwebrequest.create(surl)ashttpwebrequest; request.method = WebRequestMethods.Http.Post; request.keepalive=true; request.contenttype="application/json"; request.headers.add(httprequestheader.authorization,string.format("bearer0",ousertoken.access_token)); var bs=encoding.utf8.getbytes(data); using(streamreqstream=request.getrequeststream()) reqstream.write(bs,0,bs.length); try Response = request.getresponse(); varsr=new StreamReader(response.GetResponseStream()); result=sr.readtoend(); sr.close(); IsInserted=true; catch(exceptione) IsInserted=false; //TODO returni sinserted; 3-5 Mettre à jour un rendez-vous : La mise à jour se fait en envoyant une requête en PUT sur le serveur, il faut inclure le code d'accès et spécifier l'identifiant du rendez-vous à mettre à jour. Notez également que vous devez incrémenter la propriété «sequence» pour que la mise à jour puisse se faire, voici la méthode permettant de mettre à jour un rendez-vous :
13 13 publicboolupdateevent(itemoitem,usertokenousertoken) bool bisupdated=false; string surlupdateevent = " try //Onincrémentelavaleurduchampséquence oitem.sequence = oitem.sequence+1; HttpWebRequest request=null; String surl=string.format(surlupdateevent,ousertoken.login,oitem.id); string data= SerializeWithoutNullValues(oItem); request =HttpWebRequest.Create(sUrl)asHttpWebRequest; request.contenttype="application/json"; request.method=webrequestmethods.http.put; request.keepalive=true; request.timeout=3000; request.headers.add(httprequestheader.authorization,string.format("bearer0",ousertoken.access_token)); var bs=encoding.utf8.getbytes(data); using(streamreqstream=request.getrequeststream()) reqstream.write(bs,0,bs.length); HttpWebResponse repons =(HttpWebResponse)request.GetResponse(); bisupdated = true; request.abort(); catch(webexception e) bisupdated=false; return bisupdated;
14 Supprimer un rendez-vous : Pour supprimer un rendez-vous dans l agenda Google,il faut envoyer une requête HTTP en DELETE sur le serveur, en incluant dans l'entête le Token d'accès, il faut également disposer de l'identifiant du rendez-vous à supprimer. Public bool DeleteEvent (UserTokenoUserToken,stringEventId) String data = string.empty; String surldeleteevent = " Bool bisdeleted = false; String surl = string.format(surldeleteevent,ousertoken.login,eventid); HttpWebRequest request =(HttpWebRequest)WebRequest.Create(sUrl); request.method="delete"; request.contenttype="application/json"; request.headers.add(httprequestheader.authorization,string.format("bearer0",ousertoken.access_token)); try var bs= Encoding.UTF8.GetBytes(data); using(streamreqstream=request.getrequeststream()) reqstream.write(bs,0,bs.length); using(httpwebresponseresponse=(httpwebresponse)request.getresponse()) if(response.statuscode==httpstatuscode.nocontent) bisdeleted = true; else bisdeleted = false; catch(exception) bisdeleted = false; returnbisdeleted;
15 15 Conclusion : En plus des opérations principales sur les agendas citées auparavant, l'api autorise aussi des opérations sur les calendriers, on peut notamment créer, modifier ou supprimer un calendrier, mais également lister l'ensemble des calendriers et leurs configurations. Cette façon d interroger l Api Google Calendar est très facile à mettre en œuvre mais nécessite la gestion des Tokens d'accès. Je vous invite à aller sur ce lien ( il vous permet de tester toutes les APIs Google, et de voir toutes les opérations possibles avec l'api Google, ce lien est très utile pour tester vos méthodes. Références :
Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :
Développement d un client REST, l application Vélib 1. Présentation L application présentée permet de visualiser les disponibilités des vélos et des emplacements de parking à la disposition des parisiens
Plus en détailArchitecture Orientée Service, JSON et API REST
UPMC 3 février 2015 Précedemment, en LI328 Architecture générale du projet Programmation serveur Servlet/TOMCAT Aujourd hui Quelques mots sur les SOA API - REST Le format JSON API - REST et Servlet API
Plus en détailServeur d'application Client HTML/JS. Apache Thrift Bootcamp
Serveur d'application Client HTML/JS Apache Thrift Bootcamp Pré-requis La liste ci-dessous de logiciels doit être installée et opérationnelle sur la machine des participants : Compilateur thrift http://thrift.apache.org/
Plus en détailParis Airports - Web API Airports Path finding
Paris Airports - Web API Airports Path finding Hackathon A660 Version Version Date writer Comment 1.0 19/05/2015 Olivier MONGIN Document creation Rédacteur : Olivier.MONGIN@adp.fr Date : 19/05/2015 Approbateur
Plus en détail.NET - Classe de Log
.NET - Classe de Log Classe permettant de Logger des données Text Dans tous les projets, il est indispensable de pouvoir stocker de l'information textuelle : Pour le suivi des erreurs Pour le suivi de
Plus en détailRafraichissement conditionné d'une page en.net
Rafraichissement conditionné d'une page en.net Test avec AJAX pour rafraichissement En utilisant AJAX, voici une possibilité de faire un rafraichissement conditionné. Nous verrons dans cet article une
Plus en détailAlfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: info@alfstore.com Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Plus en détailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailTD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Plus en détailA DESTINATION DES SERVICES TIERS. Editeurs d applications et ressources pédagogiques connectées à l ENT
DOCUMENTATION CAS A DESTINATION DES SERVICES TIERS Titre descriptif du document Référence du document REFO-DT-ENTV2-ServeurCAS-v1.2.docx Nom du fichier REFO-DT-ENTV2-ServeurCAS-v1.2.docx Version du document
Plus en détailOpenPaaS Le réseau social d'entreprise
OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3
Plus en détailGestion du cache dans les applications ASP.NET
Gestion du cache dans les applications ASP.NET Version 1.0 James RAVAILLE http://blogs.dotnet france.com/jamesr 2 Gestion du cache dans les applications ASP.NET v 1.0 03/01/09 Sommaire 1 Introduction...
Plus en détailRMI le langage Java XII-1 JMF
Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine
Plus en détailCorrigé des exercices sur les références
Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile
Plus en détailPlateforme PAYZEN. Définition de Web-services
Plateforme PAYZEN Définition de Web-services Ordre de paiement Version 1.1 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Lyra-Network
Plus en détailClasse ClInfoCGI. Fonctions membres principales. Gestion des erreurs
Utilisation des classes de PourCGI par Michel Michaud, version 2002-11-23 Les fichiers PourCGI.h et PourCGI.cpp rendent disponibles deux classes et une fonction libre qui permettent de faire facilement
Plus en détailAndroid et le Cloud Computing
Android et le Cloud Computing 1 Plan de l'exposé Rappels sur Android et le cloud Présentation de GCM Notions fondamentales de GCM Construire un projet GCM Ecrire un client GCM (récepteur GCM) Ecrire un
Plus en détailProjet de programmation (IK3) : TP n 1 Correction
Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public
Plus en détailCréation d un service web avec NetBeans 5.5 et SJAS 9
Sommaire Création d un service web avec NetBeans 5.5 et SJAS 9 1. Présentation... 2 2. Création d un service web avec NetBeans... 2 2.1. Création d une application Web... 2 2.2. Création du service web...
Plus en détailDocumentation CAS à destination des éditeurs
Documentation CAS à destination des éditeurs Sommaire Préambule... 1 Présentation de CAS...2 Intérêt... 2 Fonctionnement de base...2 Synoptique des échanges (1ère connexion)... 2 Synoptique des échanges
Plus en détailSHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5
SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N
Plus en détailGénéralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code
Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes
Plus en détailExtension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.
Note technique W4 Engine Extension SSO Java Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java. 1 Présentation 3 2 Custom SSO Java 4 3 Bilan 10 Sommaire Référence
Plus en détailLa programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)
Le langage PHP (2) Walid Belkhir Université de Provence belkhir@cmi.univ-mrs.fr http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation
Plus en détailAspects techniques : guide d interfaçage SSO
COURDECO Aspects techniques : guide d interfaçage SSO Septembre 2011 Cette annexe présente succinctement le système d'authentification unique (SSO : single sign on, authentification unique) utilisé dans
Plus en détailQuelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)
Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07
Plus en détailDéfinition des Webservices Ordre de paiement par email. Version 1.0
Définition des Webservices Ordre de paiement par email Version 1.0 Rédaction, Vérification, Approbation Rédaction Vérification Approbation Nom Date/Visa Nom Date/Visa Nom Date/Visa Historique du document
Plus en détailRapport de Mini-Projet en ArcGIS Engine
Rapport de Mini-Projet en ArcGIS Engine Réalisée par : Asmae BENMESSAOUD 3ème Année Cycle d Ingénieur Géoinformation Année Universitaire 2010- Sommaire 1 Introduction L analyse géographique et la visualisation
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailBest Practices : Utilisation des APIs de Lotus Web Content Management
Best Practices : Utilisation des APIs de Lotus Web Content Management Agenda Scénarios IBM Lotus Web Content Management Java Server Page (JSP) Introduction Balises JSP Composants JSP Exemples JSP Page
Plus en détailConstruire une application marketing Facebook sur la plateforme Windows Azure
Construire une application marketing Facebook sur la plateforme Windows Azure Lorsque le «Social Effect» est au rendez-vous, comment s assurer que votre application va supporter la montée en charge? Nous
Plus en détailOauth : un protocole d'autorisation qui authentifie?
Oauth : un protocole d'autorisation qui authentifie? Maxime Féroul Directeur Technique / KYOS IT SECURITY Application Security Forum - 2012 Western Switzerland 7-8 novembre 2012 - Y-Parc / Yverdon-les-Bains
Plus en détailManuel d intégration API SOAP SMS ALLMYSMS.COM
Manuel d intégration API SOAP SMS ALLMYSMS.COM 26/02/2014 TABLE DES MATIERES OBJECTIF DU DOCUMENT... 3 LE PROTOCOLE SOAP... 3 ENVOI DE REQUETES SOAP A LA PLATEFORME ALLMYSMS.COM... 3 BACKOFFICE SMS...
Plus en détailApplication web de gestion de comptes en banques
Application web de gestion de comptes en banques Objectif Réaliser une application Web permettant à un client de gérer ses comptes en banque Diagramme de cas d'utilisation 1 Les cas d'utilisation Connexion
Plus en détailCréation d objet imbriqué sous PowerShell.
Création d objet imbriqué sous PowerShell. Par Laurent Dardenne, le 13/01/2014. Niveau Ce tutoriel aborde la création d objet composé, c est-à-dire que certains de ses membres seront eux-mêmes des PSObjects.
Plus en détailServeur d'archivage 2007 Installation et utilisation de la BD exist
Type du document Procédure d'installation Auteur(s) Eric Bouladier Date de création 26/02/20007 Domaine de diffusion tous Validé par Equipe Versions Date Auteur(s) Modifications V1.00 26/02/2007 Eric Bouladier
Plus en détailUtilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008
Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application
Plus en détailLa persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Plus en détailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailUne introduction à la technologie EJB (2/3)
Une introduction à la technologie EJB (2/3) 1 Les singletons des EJB 3.1 1.1 Synchronisation gérée manuellement Depuis la version 3.1, des EJB Statless à instance unique sont maintenant disponibles : ce
Plus en détailJava DataBaseConnectivity
Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage
Plus en détailLe MSMQ. Version 1.0. Pierre-Franck Chauvet
Le MSMQ Version 1.0 Z Pierre-Franck Chauvet 2 [Le MSMQ] [Date : 10/10/09] Sommaire 1 Introduction... 3 2 Le Concept... 5 2.1 Les messages... 5 2.2 Les files d attentes... 5 2.3 WorkGroup... 7 2.4 Active
Plus en détailLes technologies de gestion de l identité
Commission Identité Numérique Groupe de travail Gestion des identités Les technologies de gestion de l identité ATELIER 1 Paul TREVITHICK, CEO de Parity Responsable projet Higgins Président Fondation Infocard
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailMysql. Les requêtes préparées Prepared statements
Mysql Les requêtes préparées Prepared statements Introduction Les prepared statements côté serveur sont une des nouvelles fonctionnalités les plus intéressantes de MySQL 4.1 (récemment sorti en production
Plus en détailInstallation et utilisation d'un certificat
1 IceWarp Merak Mail Server Installation et utilisation d'un certificat Icewarp France octobre 2007 2 Icewarp Merak Mail Serveur : Guide de mises à jour à la version 9 Sommaire Introduction...3 Situation
Plus en détailRappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme
Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Plus en détailLe hub d entreprise est une application de déploiement des applications mais aussi un outil de communication
Le hub d entreprise est une application de déploiement des applications mais aussi un outil de communication Les méthodes clefs pour le management des applications (C#, C++, VB) InstallationManager.FindPackagesForCurrentPublisher
Plus en détailDans l'article précédent, vous avez appris
Pour les débutants Les différents formats de sortie proposés par PHPExcel La bibliothèque orientée objet PHPExcel permet de lire et créer des fichiers pour tableurs. Dans cette série d articles, vous apprendrez
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailTP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet
TP Composants Java ME - Java EE Vous allez, dans ce TP, construire une architecture client serveur, plus précisément MIDlet cliente, servlet serveur. Pour cela, on va d'abord installer la partie serveur
Plus en détailTP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.
ASTRIUM - Toulouse JEE Formation 2013 TP JEE Développement Web en Java Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web. Figure 1 Architecture
Plus en détailProgrammation MacOSX / ios
Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunès@liafa.jussieu.fr deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailRemote Method Invocation (RMI)
Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe
Plus en détailLe stockage local de données en HTML5
Le stockage local HTML5, pourquoi faire? Dans une optique de réduction des couts de maintenance, de déploiement, beaucoup d'entreprises ont fait le choix de migrer leurs applicatifs (comptables, commerciales,
Plus en détailDevenez un véritable développeur web en 3 mois!
Devenez un véritable développeur web en 3 mois! L objectif de la 3W Academy est de former des petits groupes d élèves au développement de sites web dynamiques ainsi qu à la création d applications web
Plus en détailExploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales
Exploration des technologies web pour créer une interaction entre Mahara et les plateformes professionnelles et sociales D 1.3.2 Rapport d analyse Auteurs: Johann Luethi, Laurent Opprecht, Patrick Roth
Plus en détailPaginer les données côté serveur, mettre en cache côté client
Paginer les données côté serveur, mettre en cache côté client Vous voulez sélectionner des lignes dans une table, mais celle-ci comporte trop de lignes pour qu il soit réaliste de les ramener en une seule
Plus en détailSupervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14
Document FAQ Supervision et infrastructure - Accès aux EXP Page: 1 / 9 Table des matières Introduction... 3 Démarrage de la console JMX...4 I.Généralités... 4 II.WebLogic... 5 III.WebSphere... 6 IV.JBoss...
Plus en détailMéthode de préparation du fichier texte d import depuis Excel, via Access jusqu à Drupal.
IMPORT SCROL vous invite fortement à lui confier cette tâche pour vous décharger de toute responsabilité dans le cas d'un import manqué. Si vous confiez à SCROL vos nouvelles données (souches, images,
Plus en détailCOMPRENDRE L ARCHITECTURE DES WEB SERVICES REST. Amosse EDOUARD, Doctorant
COMPRENDRE L ARCHITECTURE DES WEB SERVICES REST Amosse EDOUARD, Doctorant Organisation Cours Magistral 24/11/2014 26/11/2014 01/12/2014 Travaux Dirigés 26/11/2014 28/11/2014 01/11/2014 08/11/2014 Evaluation
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détailRMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.
RMI Remote Method Invocation: permet d'invoquer des méthodes d'objets distants. Méthode proche de RPC. Outils et classes qui rendent l'implantation d'appels de méthodes d'objets distants aussi simples
Plus en détailAuthentification et contrôle d'accès dans les applications web
Authentification et contrôle d'accès dans les applications web Quelques Rappels Objectifs : contrôler que seulement Certains utilisateurs Exécutent certaines opérations Sur certains objets Trois entités
Plus en détailLa base de données XML exist. A. Belaïd
La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques
Plus en détail21 mars 2012. Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.
de 21 mars 2012 () 21 mars 2012 1 / 6 de 1 2 3 4 5 () 21 mars 2012 2 / 6 1 de 2 3 4 5 () 21 mars 2012 3 / 6 1 2 de 3 4 5 () 21 mars 2012 4 / 6 1 2 de 3 4 de 5 () 21 mars 2012 5 / 6 de 1 2 3 4 5 () 21 mars
Plus en détailTutoriel: Création d'un Web service en C++ avec WebContentC++Framework
Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework Gaël de Chalendar CEA LIST / LIC2M Journée de Présentation des Technologies WebContent INSTN 14/12/2009 Présentation de gsoap Plan
Plus en détailArchitectures Web Services RESTful
Architectures Web Services RESTful Alexandre Denis Alexandre.Denis@inria.fr Inria Bordeaux Sud-Ouest France ENSEIRB PG306 REST REST Representational State Transfer Roy Fielding (2000) Décollage vers 2006-2007
Plus en détailSécurité des applications web. Daniel Boteanu
I F8420: Éléments de Sécurité des applications web Daniel Boteanu Architecture des applications web Client légitime Internet HTTP 浀 HTML Server Web 2 Architecture des applications web Client légitime Internet
Plus en détail4. SERVICES WEB REST 46
4. SERVICES WEB REST 46 REST REST acronyme de REpresentational State Transfert Concept introduit en 2000 dans la thèse de Roy FIELDING Est un style d architecture inspiré de l architecture WEB En 2010,
Plus en détailWeb Tier : déploiement de servlets
Web Tier : déploiement de servlets 1 / 35 Plan 1 Introduction 2 Servlet : Principe de fonctionnement 3 Création et développement sur un serveur JEE 4 Quelques méthodes de l API des servlets 5 Utilisation
Plus en détailNotes de cours : bases de données distribuées et repliquées
Notes de cours : bases de données distribuées et repliquées Loïc Paulevé, Nassim Hadj-Rabia (2009), Pierre Levasseur (2008) Licence professionnelle SIL de Nantes, 2009, version 1 Ces notes ont été élaborées
Plus en détailConnexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC
Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC Sommaire 1. Objectifs et intérêts... 2 2. Intégrer le driver SQL Server dans SJSAS 9... 2 2.1. Télécharger
Plus en détailGestion Electronique de Document (ECM/GED)
Gestion Electronique de Document (ECM/GED) Analyse de l existant Découpage modulaire La gestion électronique de documents repose sur un ensemble de deux modules conjoints, au sein de la famille «ecm» :
Plus en détailChapitre 10. Les interfaces Comparable et Comparator 1
Chapitre 10: Les interfaces Comparable et Comparator 1/5 Chapitre 10 Les interfaces Comparable et Comparator 1 1 Ce chapitre a été extrait du document "Objets, Algorithmes, Patterns" de [René Lalement],
Plus en détailConfigurer la supervision pour une base MS SQL Server Viadéis Services
Configurer la supervision pour une base MS SQL Server Référence : 11588 Version N : 2.2 : Créé par : Téléphone : 0811 656 002 Sommaire 1. Création utilisateur MS SQL Server... 3 2. Configuration de l accès
Plus en détailGilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068
HTTP/1.1 RFC 2068 1 Caractéristiques Niveau application Sans état Tout transfert de données Au dessus du protocole TCP Largement utilisé dans le World Wide Web Utilise les normes : URI (Uniform Resource
Plus en détailLes différentes méthodes pour se connecter
Les différentes méthodes pour se connecter Il y a plusieurs méthodes pour se connecter à l environnement vsphere 4 : en connexion locale sur le serveur ESX ; avec vsphere Client pour une connexion sur
Plus en détailUn ordonnanceur stupide
Un ordonnanceur simple Université Paris Sud L objet des exercices qui suivent est de créer un ordonanceur implantant l algorithme du tourniquet ( round-robin scheduler ). La technique utilisée pour élire
Plus en détail1. Installation d'un serveur d'application JBoss:
EPITA Ala Eddine BEN SALEM App-Ing2 J2EE T.P. 4 EJB3, Serveur d'application JBoss 1. Installation d'un serveur d'application JBoss: télécharger l'archive du serveur JBoss à l'adresse: http://sourceforge.net/projects/jboss/files/jboss/jboss-5.0.0.ga/jboss-5.0.0.ga.zip/download
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailCours: Administration d'une Base de Données
Bases de Données Avancées Module A IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Cours: Administration d'une Base de Données Table of Contents Principes...1 Structure d'un Base de Données...1 Architecture...1
Plus en détailPHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)
PHP et mysql php_mysql PHP et mysql Code: php_mysql Originaux url: http://tecfa.unige.ch/guides/tie/html/php-mysql/php-mysql.html url: http://tecfa.unige.ch/guides/tie/pdf/files/php-mysql.pdf Auteurs et
Plus en détailCONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE
CONCOURS DE L AGRÉGATION INTERNE «ÉCONOMIE ET GESTION» SESSION 2015 SECONDE ÉPREUVE Épreuve de cas pratique dans la spécialité correspondant à l'option choisie par le candidat Option D Durée de préparation
Plus en détailADO.NET. Ado.net propose deux modes d'accès, le mode connecté et le mode déconnecté.
ADO.NET Ado.net est une technologie d'accès aux données qui fournit un ensemble des classes permettant d'accéder aux données relationnelles. Même si Microsoft a repris le nom d'ado, déjà présent en VB6,
Plus en détailSOMMAIRE. 3. Comment Faire?... 3 3.1 Description détaillée des étapes de configuration en fonction du logiciel de messagerie... 3
SOMMAIRE 1. A quoi sert ce Document?... 3 2. Quel intérêt de faire cette Manipulation?... 3 3. Comment Faire?... 3 3.1 Description détaillée des étapes de configuration en fonction du logiciel de messagerie...
Plus en détailPHP 5. La base de données MySql. A. Belaïd 1
PHP 5 La base de données MySql A. Belaïd 1 Base de données C est quoi une base de données? Une base de données contient une ou plusieurs tables, chaque table ayant un ou plusieurs enregistrements Exemple
Plus en détailvcloud Director Comment créer et gérer son «Cloud» Jean-Claude DAUNOIS Senior Systems Engineer VMware
vcloud Director Comment créer et gérer son «Cloud» Jean-Claude DAUNOIS Senior Systems Engineer VMware «Rendre les choses compliquées est facile. Rendre les choses faciles est compliqué.» *Dicton informatique
Plus en détailProgrammation Internet en Java
Chapitre 8 Programmation Internet en Java Vous avez déjà utilisé Internet, le plus connu des inter-réseaux mondiaux d ordinateurs et quelques-uns de ses services, en particulier le web et le courrier électronique.
Plus en détailJava RMI. Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: arnaud.labourel@lif.univ-mrs.fr Université de Provence 8 mars 2011 Arnaud Labourel (Université de Provence) Java RMI 8 mars 2011 1 / 58 Web services Services par le réseau
Plus en détailEditer un script de configuration automatique du proxy
Editer un script de configuration automatique du proxy INTRODUCTION... 2 AVANTAGE D UN SCRIPT DE CONFIGURATION... 2 SYNTAXE DU SCRIPT DE CONFIGURATION AUTOMATIQUE... 2 MISE A DISPOSITION DU SCRIPT... 4
Plus en détail2 Formation utilisateur
2 Formation utilisateur Formation développeur Formation Formation développeur - créer un compte - créer un projet - rejoindre/quitter un projet - rappel sur l'open source et les licences - rappels su PHP
Plus en détailMachines virtuelles fonctionnelles (suite) Compilation ML Java
Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détail27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)
Propriétés du Document Source du Document SDK_accords.odt Titre du Document SDK Python et Java pour le développement de services ACCORD Module(s) PyaccordsSDK, JaccordsSDK Responsable Prologue Auteur(s)
Plus en détailIntroduction à JDBC. Accès aux bases de données en Java
Introduction à JDBC Accès aux bases de données en Java Eric Cariou Université de Pau et des Pays de l'adour Département Informatique Eric.Cariou@univ-pau.fr 1 Introduction JDBC : Java Data Base Connectivity
Plus en détailWEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13
WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels
Plus en détail