Avr
06
|
Google LatitudeW propose des applications, des services et une APIW permettant d’effectuer de la géolocalisation.
Avec un téléphone Android par exemple, la position peut se mettre à jour de façon automatique.
Or, j’ai eu envie de voir comment on pouvait interagir avec cette API depuis Delphi.
Mais comme par hasard, Latitude est un service qui utilise sa propre authentification… du coup, je n’ai pas pu réutiliser le code que j’avais écrit lors de la rédaction de cet article !
Après avoir passé un bon moment à comprendre les différents aller-retours qu’il fallait effectuer pour s’authentifier, j’y suis finalement parvenu !
Pour cela, j’ai utilisé l’interface Web de test d’authentification de Google qui m’a permis de mieux comprendre le mécanisme d’échange à effectuer.
Ce message posté sur le groupe de discussion m’a également permis d’y voir plus clair.
Pour y parvenir, j’ai créé un nouveau projet Delphi, dans lequel j’ai ajouté un TIdHTTP pour les requêtes HTTP n’ayant pas d’interaction avec l’utilisateur, un TIdSSLIOHandlerSocketOpenSSL pour les connexions SSL, et un TWebBrowser pour les connexions nécessitant une interaction de l’utilisateur (que j’ai par la suite automatisée comme un porc ) et l’affichage de la position courante via Google Maps…
Mon code est très facilement améliorable… c’est un projet brouillon qui m’a simplement démontré que c’était possible ! Il permet aujourd’hui (demain, s’il change des trucs dans l’API, leurs pages web, ce n’est pas certain qu’il fonctionnera sans modification à apporter) de récupérer sa position actuelle et/ou d’en définir une manuellement… Tout cela en s’étant bien sûr correctement authentifié !
Par ailleurs, lors de échanges, les serveurs de Google me renvoient parfois des erreurs ; c’est pourquoi, l’application tente automatiquement de se reconnecter (limité à 5 fois)…
Un TSpeedButton est disponible dans l’application pour accéder à la page Web de Google qui permet de se créer un domaine afin de pouvoir spécifier les paramètres nécessaires à l’utilisation de l’API.
Si cela vous intéresse, vous pouvez télécharger les sources de l’application depuis ce lien.
Les sources ont été codées avec Delphi XE.
De plus, je ne maitrise pas la façon d’encoder pour obtenir le format attendu par Google… si vous corrigez des bugs, améliorez le code, n’hésitez pas à laisser un commentaire
Derniers commentaires