Déc 12

Afin de déboguer une application AndroidW, je me suis rapidement créer une application en DelphiW pour récupérer mes contacts Google au format XMLW

La méthode est relativement simple et expliquée sur cette page : Developer’s Guide: Protocol – Google Contacts Data API – Google Code

Pour cela, j’ai créé une nouvelle application Fiche VCLW, sur laquelle j’ai ajouté :

  • 1 TMemo : pour afficher le XML
  • 4 TLabeledEdit : pour saisir les informations nécessaires à l’authentification
  • 1 TButton : pour exécuter la récupération des informations
  • 1 TIdHTTP : pour me connecter au site de Google
  • 1 TIdSSLIOHandlerSocketOpenSSL : pour supporter le protocole SSL (utilisé par Google)

J’ai spécifié que le TIdHTTP utilise le TIdSSLIOHandlerSocketOpenSSL comme IOHandler.

Puis j’ai double-cliqué sur le bouton pour générer sa méthode Click dans laquelle j’ai utilisé le code suivant :

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
procedure TForm2.btnGetContactsClick(Sender: TObject);
 var
  slParams : TStringList;
  sSID     : string;
  sContacts: string;
begin
  Screen.Cursor := crHourGlass;
  slParams := TStringList.Create;
  try
    // Purge des précédents headers
    idhtpGoogle.Request.CustomHeaders.Clear;

    slParams.Add('accountType=GOOGLE');              // Type de compte
    slParams.Add('Email='   + lbledtEmail.Text);     // email du compte
    slParams.Add('Passwd='  + lbledtPassword.Text);  // mot de passe du compte
    slParams.Add('service=' + lbledtService.Text);   // cp
    slParams.Add('source='  + lbledtSource.Text);    // une chaîne au format companyName-applicationName-versionID
    idhtpGoogle.Request.ContentType := 'application/x-www-form-urlencoded';

    // Récupération de la clé d'authentification
    slParams.DelimitedText          := idhtpGoogle.Post('https://www.google.com/accounts/ClientLogin',slParams);

    // Passage de la clé
    idhtpGoogle.Request.CustomHeaders.Add('Authorization:GoogleLogin auth=' + slParams.Values['Auth']);
    // Every request that you send using the Contacts Data API should specify version 3.0 of the API.
    idhtpGoogle.Request.CustomHeaders.Add('GData-Version: 3.0');

    // On demande les 500 premiers contacts
    sContacts := idhtpGoogle.get('https://www.google.com/m8/feeds/contacts/default/full?max-results=500');

    // On affiche les contacts en formatant le XML (uses XMLDoc)
    mmo1.Text := xmlDoc.FormatXMLData(sContacts);
  finally
    slParams.free;
    Screen.Cursor := crDefault;
  end;
end;

Normalement, vous devriez ainsi avoir vos différents contacts et leurs informations associées. Il n’y a pas photo, Delphi est un environnement RADW (lol)

Sur le même principe, vous pouvez également attaqué l’agenda, le Reader, …, de Google, maintenant que vous avez votre clé d’autorisation.

Share

Lien permanent vers Récupérer ses contacts Google avec Delphi Rédigé par Whiler \\ Tags : , , , , , ,

Une réponse pour “Récupérer ses contacts Google avec Delphi”

  1. sergio a dit :

    sorry, this doesn´t work here :( do you have the complete fonts ?
    please, send me to sernet@gmail.com

    Répondre

Laisser une réponse

(requis)

(requis)

*

;) (lol) (y) |-( (hi) 8-) (angel) :s (clap) (bow) (tmi) (:| plus »

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.