Bonjour, je voudrais savoir comment puis-je consulter mes calendriers dans
Google Calendars. Je sais qu'il existe de API Google mais comment les utiliser j'ai essayer avec Indy9 mais cela ne fonctionne pas. Merci de m'aider
Bonjour, je voudrais savoir comment puis-je consulter mes calendriers dans
Google Calendars. Je sais qu'il existe de API Google mais comment les utiliser j'ai essayer avec Indy9 mais cela ne fonctionne pas. Merci de m'aider
En fait j'utilise Delphi pour ce faire je voudrais juste arriver à m'authentifier
Tu veux juste te connecter à Google Calendar, ou alors récupérer complètement les informations de ton calendrier pour les utiliser dans ton programme ?
Sinon la doc est ici :
http://code.google.com/intl/fr/apis/..._protocol.html
Mais il te faut également un parser XML (TXMLDocument...) pour créer et récupérer les requêtes.
Merci, en fait j'ai réussi à me connecter a Google je sais de plus éditer un calendrier et je sais aussi éditer les évènements. Par contre je ne sais pas ajouter d'évènements cela me retourne BAD REQUEST.
Voici ce que j'envoies
Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?xml version="1.0" encoding="UTF-8" ?> - <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/g/2005#event" /> <title type="text">Tennis with Beth</title> <content type="text">Meet for a quick lesson.</content> <gd:transparency value="http://schemas.google.com/g/2005#event.opaque" /> <gd:eventStatus value="http://schemas.google.com/g/2005#event.confirmed" /> <gd:where valueString="Rolling Lawn Courts" /> <gd:when startTime="2006-04-17T15:00:00.000Z" endTime="2006-04-17T17:00:00.000Z" /> </entry>
il m'enlève les '>' on dirait (suis passé par un sniffer)
Indy t'enlève les > ?
Sinon, essaye juste :
sans l'en-tête. Et dis moi le retour que tu as
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"> <category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/g/2005#event" /> <title type="text">Tennis with Beth</title> <content type="text">Meet for a quick lesson.</content> <gd:transparency value="http://schemas.google.com/g/2005#event.opaque" /> <gd:eventStatus value="http://schemas.google.com/g/2005#event.confirmed" /> <gd:where valueString="Rolling Lawn Courts" /> <gd:when startTime="2006-04-17T15:00:00.000Z" endTime="2006-04-17T17:00:00.000Z" /> </entry>.
as tu essayer d'utiliser les REST client
http://ajax.marcocantu.com/delphirest/default.htm
ou alors sur le site de progdigy
http://www.progdigy.com/?p=28
il y a pas google Calendar comme exemple mais une fois que tu connais le principe : c'est toujours le même.
En fait voici mon code :
Si je retire l'entête de mon fichier XML il me dit BAD REQUEST également
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 procedure TForm3.Button2Click(Sender: TObject); var postStrings: TidStringList; sUrl,PostResult : String; slParam : TStringList; mStream : TMemoryStream; begin sAuthorization := 'Authorization: GoogleLogin auth='+sAuth; idHttp1.Request.ContentType := 'application/atom+xml'; surl := 'http://www.google.com/calendar/feeds/default/private/full'; slParam := TStringList.Create; mStream := TMemoryStream.Create; slParam.LoadFromFile('NewCal.xml'); xmlns=''http://www.w3.org/2005/Atom'' xmlns:gCal=''http://schemas.google.com/gCal/2005''> <content type="html">Tennis April 11 3pm-3:30pm</content> <gCal:quickadd value="true"/> </entry>'); IdHTTP1.Request.CustomHeaders.Add(sAuthorization); IdHTTP1.HandleRedirects := True; postResult := idHttp1.Post(surl, slPAram); Memo1.Lines.Clear; Memo1.Lines.Add(postResult); end;
Quand je j'enlève hoForceEncodeParams de HTTPOptions du IdHTTP, et que je met la requête XML sur une seul ligne, ça me retourne toujours une erreur 400 BAD REQUEST, mais l'événement est ajouté à mon calendrier. C'est peut-être une piste...
J'ai envoyé une requête du style :
Voici mon code : (j'ai mis la requête XML dans un TMemo)
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part <entry xmlns="http://www.w3.org/2005/Atom" xmlns:gd="http://schemas.google.com/g/2005"><category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/g/2005#event" /> <title type="text">Tennis with Beth</title> <content type="text">Meet for a quick lesson.</content> <gd:transparency value="http://schemas.google.com/g/2005#event.opaque" /> <gd:eventStatus value="http://schemas.google.com/g/2005#event.confirmed" /> <gd:where valueString="Rolling Lawn Courts" /> <gd:when startTime="2009-10-17T15:00:00.000Z" endTime="2009-10-17T17:00:00.000Z" /> </entry>
Code Pascal : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdIOHandler, IdIOHandlerSocket, IdSSLOpenSSL, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdSocks; type TForm1 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Button1: TButton; Button2: TButton; IdHTTP1: TIdHTTP; Memo1: TMemo; IdSSLIOHandlerSocket1: TIdSSLIOHandlerSocket; IdSocksInfo1: TIdSocksInfo; Label3: TLabel; Edit3: TEdit; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Déclarations privées } public { Déclarations publiques } end; var Form1: TForm1; GAuth: String; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var PostItems: TStringList; Reponse: String; begin PostItems := TStringList.Create; try PostItems.Add('accountType=HOSTED_OR_GOOGLE'); PostItems.Add('Email=' + Edit1.Text); PostItems.Add('Passwd=' + Edit2.Text); PostItems.Add('service=cl'); IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded'; Reponse := IdHTTP1.Post('https://www.google.com/accounts/ClientLogin', PostItems); PostItems.Clear; PostItems.Text := Reponse; GAuth := PostItems.Values['Auth']; Edit3.Text := GAuth; finally PostItems.Free; end; end; procedure TForm1.Button2Click(Sender: TObject); var Reponse: String; begin IdHTTP1.Request.ContentType := 'application/atom+xml'; IdHTTP1.Request.CustomHeaders.Add('Authorization: GoogleLogin auth=' + GAuth); Reponse := IdHTTP1.Post('http://www.google.com/calendar/feeds/default/private/full', Memo1.Lines); ShowMessage(Reponse); end; end.
En fait cela ne marche pas pour moi snif, il me met BAD request mais ne l'ajoute pas dans mon calendrier
Essaye de voir avec JSON Toolkit si tu arrives à te connecter.
Il y a un exemple avec Google Search dans le SVN:
http://jsontoolkit.svn.sourceforge.n...as?view=markup
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager