API, Application Programming Interface. Interface de programmation d'applications, contenant un ensemble de fonctions courantes de bas niveau, bien documentées, permettant de programmer des applications de hauts niveaux.

Google n'est pas le seul sur ce créneau, d'autres API lancé par Microsoft (Msn Live) et Yahoo sont proposés aux programmeurs. Les méthodes d'échanges entre l'api et le développeur ne sont pas toujours identiques.

Google est intérogeable via SOAP. Simple Object Access Protocol, permet de faire passer du DOM ou du SAX sous forme de Xml dans l'Http ou dans n'importe quel autre protocole. C'est bien joli tout ça mais comment fait t'on pour exploiter la chose ?

Récupérer une clé d'identification

La première démarche du développeur sera de se procurer une clé d'authentification composée de chiffres et de lettres (exemple : Her14df6hjd590Dgbr3Tyey). N'essayer pas cette clé elle est invalide ;). L'aquisition de cette clé d'identification est gratuite, mais limite le nombre de requête à 1000 par jour. D'autres API comme celle de chez Msn live est limité à 10 000 (à vérifier). Il existe une seconde limitation, à chaque requête seul 10 résultats sont retournés. Si vous désirez obtenir plus de 10 résultats vous devez réaliser un script permettant une itération.

Afin d'obtenir la clé, créer un compte sur Google Accounts. Un courrier électronique succédera votre inscription, celui ci permetta de vérifier la légitmité de la demande et de votre adresse. Si besoin vous pouvez télécharger le kit de développement intitulé "Google SOAP Search API Developper's Kit". Vous y trouverez un fichier WSDL (Web Service Description Language) décrivant en XML les services Web disponibles via cette Api, en résumé les valeurs accessibles après requête (méthode et argument indépendant du langage de programmation).

Constuire la requête

La construction d'une requête diffère selon le langage utilisé mais la méthode reste la même. Une requête doit être de toute façon envoyé à l'API pour obtenir une réponse.

Choisir le langage

Dans l'exemple ci après le langage utilisé est le langage Perl, mais dans de prochains billets, je ferais une démonstration avec Php, Python, Ruby. Quelque soit le langage utilisé L'API fonctionne toujours en requête <-> réponse.

Voici l'exemple commenté en Perl (non coloré) :

#!/usr/local/bin/perl
my $google_cle  = 'Her14df6hjd590Dgbr3Tyey';
my $google_wdsl = "./GoogleSearch.wsdl";
use SOAP::Lite;
my $requete = shift @ARGV or die "Usage:perl google.pl <requete>
";
my $google_recherche = SOAP::Lite->service("file:$google_wdsl");
my $results = $google_recherche->doGoogleSearch($google_cle, $requete, 0, 5, "false", "", "false", "", "latin1", "latin1");
@{$results->{resultElements}} or exit;
foreach my $resultat (@{$results->{resultElements}}){
print
join "
",
$resultat->{title} ||"aucun titre";
$resultat->{URL},
$resultat->{snippet} || 'aucun extrait', "
";
}

Exploiter le résultat