Intégration de l'api Google Calendar en REST dans une application C# Version 1.0
|
|
|
- Anne-Claire Rondeau
- il y a 9 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 [email protected], son agenda principal aura pour identifiant [email protected]) 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
Architecture 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
Serveur 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/
Paris 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 : [email protected] Date : 19/05/2015 Approbateur
.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
Rafraichissement 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
Alfstore workflow framework Spécification technique
Alfstore workflow framework Spécification technique Version 0.91 (2012-08-03) www.alfstore.com Email: [email protected] Alfstore workflow framework 2012-10-28 1/28 Historique des versions Version Date
Exceptions. 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
TD 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
A 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
OpenPaaS 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
Gestion 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...
RMI 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
Corrigé 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
Plateforme 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
Classe 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
Android 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
Projet 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
Cré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...
Documentation 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
SHERLOCK 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
Gé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
Extension 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
La 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 [email protected] http://www.lif.univ-mrs.fr/ belkhir/ 1 / 54 1 La programmation orientée objet 2 Gestion de Connexions HTTP 3 Manipulation
Aspects 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
Quelques 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
Dé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
Rapport 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
Programmer en JAVA. par Tama ([email protected]( [email protected])
Programmer en JAVA par Tama ([email protected]( [email protected]) 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
Best 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
Construire 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
Oauth : 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
Manuel 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...
Application 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
Cré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.
Serveur 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
Utilisation 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
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 [email protected] 1
La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 [email protected] 1 Plan 1. Généralités sur la persistance des données dans les applications 2. La connection
Programmation 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)
Pré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)
Une 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
Java 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
Le 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
Les 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
Langage 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 [email protected]
Mysql. 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
Installation 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
Rappel. 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 [email protected] 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation
Le 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
Dans 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
Java 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
TP 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
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.
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
Programmation MacOSX / ios
Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunè[email protected] deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à
IN 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
TP 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
Remote 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
Le 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,
Devenez 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
Exploration 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
Paginer 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
Supervision 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...
Mé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,
COMPRENDRE 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
Introduction à 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
RMI. 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
Authentification 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
La 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
21 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
Tutoriel: 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
Architectures Web Services RESTful
Architectures Web Services RESTful Alexandre Denis [email protected] Inria Bordeaux Sud-Ouest France ENSEIRB PG306 REST REST Representational State Transfer Roy Fielding (2000) Décollage vers 2006-2007
Sé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
4. 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,
Web 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
Notes 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
Connexion à 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
Gestion 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» :
Chapitre 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],
Configurer 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
Gilles.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
Les 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
Un 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
1. 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
Les 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
Cours: 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
PHP 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
CONCOURS 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
ADO.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,
SOMMAIRE. 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...
PHP 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
vcloud 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
Programmation 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.
Java RMI. Arnaud Labourel Courriel: [email protected]. Université de Provence. 8 mars 2011
Java RMI Arnaud Labourel Courriel: [email protected] 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
Editer 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
2 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
Machines 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
Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. [email protected]
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 [email protected] LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
27/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)
Introduction à 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 [email protected] 1 Introduction JDBC : Java Data Base Connectivity
WEBSERVICES. Michael Fortier. Master Informatique 2ème année. [email protected] A308, Université de Paris 13
WEBSERVICES Michael Fortier Master Informatique 2ème année [email protected] A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels
