TUTORIELS 
Introduction à l'API Google avec PHP

Page 1 | 2 | 3

Insérer facilement un moteur de recherche Google au sein des pages de son site grâce à PHP.
 (02 décembre 2002)
 

Premier à s'être lancé dans la mise en place d'une API permettant à tout un chacun d'accéder à sa base de données comme bon lui semble (et ce, bien avant qu'Amazon ne se lance dans l'affaire, voir notre article "Introduction à l'API Amazon avec PHP"), Google a dès le début offert un accès complet (bien que limité à 1000 requêtes par jour et par numéro de licence) et facilité son utilisation par un SDK bien conçu (bien que sans fichier d'explication pour PHP).

L'API Google fonctionnant avec des requêtes SOAP, nous allons ici faire appel à la bibliothèque NuSOAP de Dietrich Ayala, qui offre l'avantage d'autoriser un accés aux fonctions SOAP aux développeurs qui n'ont pas l'usage de PEAR sur leur système. Cela nous permet d'entrer directement dans le vif du sujet...
Notons qu'avant de pouvoir faire quoi que ce soit, il vous faudra une clé Google, que vous pouvez obtenir gratuitement ici. Comme précisé, elle ne vous donne droit qu'à 1000 requêtes par jour, au-delà desquelles il vous faudra patienter jusqu'au lendemain.

Moteur de recherche
Nous pouvons donc directement concevoir un moteur de recherche très performant (car utilisant la technologie Google), tout en restant dans l'interface que l'on a conçue pour son propre site. Voici un exemple de base, qui vous donne les principale fonctions offertes par l'API:

(fichier googlesearch.php)
<html>
<body>
<?php
if (!isset($recherche) || $recherche=="")
  {
?>
<form method="post" action="<?=$PHP_SELF ?>">
  Entrez vos mots-clés:<br>
  <input type="text" name="recherche">
  <input type="submit" name="Submit" value="Envoyer">
</form>
<?php
  }
else
  {
?>
<form method="post" action="<?=$PHP_SELF ?>">
  Entrez vos mots-clés:<br>
  <input type="text" name="recherche" value="<?=$recherche;?>">
  <input type="submit" name="Submit" value="Envoyer">
</form>
<?php
  include("nusoap.php");

  
$soapclient = new soapclient("http://api.google.com/search/beta2");

  
$params = array(
    'key' => 'VOTRE-CLE-GOOGLE',
    'q' => $recherche,
    'start' => 0,
    'maxResults' => 10,
    'filter' => true,
    'restrict' => '',
    'safeSearch' => true,
    'lr' => 'lang_en|lang_fr',
    'ie' => '', 'oe' => ''
    );

$result = $soapclient->call("doGoogleSearch", $params, "urn:GoogleSearch", "urn:GoogleSearch");

  if ($result['faultstring'])
    {
    ?>Erreur: <?=$result['faultstring'];?><?
    }
  elseif ($result['estimatedTotalResultsCount'] == 0)
    {
    ?>Votre recherche n'a pas donné de résultat.<?
    }
  else
    {
?><hr>
  Votre recherche sur <b><?=utf8_decode($result['searchQuery']);?></b> a renvoyé environ <?=$result['estimatedTotalResultsCount']?> résultats.<br>
<?
    if (is_array($result['resultElements']))
      {
      foreach ($result['resultElements'] as $r)
        {
?>
<p><a href="<?=$r['URL'];?>"><?=utf8_decode($r['title']);?></a>
<br><?=utf8_decode($r['snippet']);?> (<?=$r['cachedSize'];?>)<p>
<?
        }
      }
    }
  }
?>
</body>
</html>

Vu leur longueur, nous vous fournissons les codes sources dans un fichier zippé.
L'explication de ce que nous venons de faire se trouve page suivante...

Page 1 | 2 | 3

 

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page