von Rene Schmidt
Mit der Google API bekommt man es immer dann zu tun, wenn spezielle Dienste genutzt werden sollen. Das kann eine angepasste Sonderversion der Suchmaschine sein oder die Möglichkeit tiefschürfender SEO-Analysen. Mitmachen darf jeder, allerdings mit Einschränkungen.
Ein “Application Programming Interface” ist zu deutsch eine Programmschnittstelle. Dem entsprechend ist die Google API eine Schnittstelle zu Googles Diensten. Dabei geht es um sogenannte Web Services, deren API per HTTP angesprochen wird. Einmal mehr ist XML die Schlüsseltechnologie.
Die Google APIs sind bei Web-Entwicklern mittlerweile sehr beliebt, obwohl die APIs laut Google noch im Beta-Stadium sind. Ein sicheres Zeichen für den durchschlagenden Erfolg: Google hat mit Yahoo bereits einen Nachahmer gefunden. Auch Microsoft will offenbar mitspielen. Das “MSN Search SDK Beta” bietet Klassenbibliotheken, mit denen Entwickler den MSN-Suchdienst über SOAP-XML ansprechen können.
Wozu Web APIs nutzen?
Entwickler könnten natürlich auch einfach Googles Website mit den Suchergebnissen per HTML “parsen”, um Suchergebnisse per Script weiter zu verarbeiten. Das ist aber sehr unelegant und extrem fehleranfällig.
Generell sind Klassenbibliotheken dazu gedacht, in Programm-Anwendungen genutzt zu werden. Die Nutzer dieser Programme merken nichts davon und müssen sich dafür auch nicht interessieren. Klassenbibliotheken kommen immer dann zum Einsatz, wenn Programmcode von mehreren Programmen genutzt werden soll. Programmierer können so Redundanzen vermeiden, schnell entwickeln und somit Produkte früher als Konkurrenten auf den Markt bringen.
Nicht jeder hat die Zeit oder die Kompetenz eine der besten Suchmaschinen der Welt zu entwickeln. Google ist an einer möglichst breiten Nutzung seiner Dienste interessiert, um die Messlatte für die Konkurrenz hoch zu setzen. Daher bietet Google seine Web APIs an. Programmierer können Google-Dienstleistungen in Ihre Produkte einbauen und zum Beispiel die Präsentation von Suchergebnissen selbst gestalten.
Zur Zeit dürfen Programme, die Googles Web-APIs nutzen, nicht ohne Googles Einverständnis kommerziell angeboten werden. Für die kommerzielle Nutzung müssen Unternehmen eine Erlaubnis einholen, was mit Lizenzkosten verbunden sein kann. Über Googles WebAPI können Programmierer pro Tag ungefähr 1000 Anfragen stellen.
Vor- und Nachteile
Klassenbibliotheken, die über eine Web-API verfügen, werden zentral angeboten und dezentral genutzt. Darin liegt der hauptsächliche Vorteil dieser Technik. Der Anbieter kann seine Eigenentwicklung vor dem Zugriff von Konkurrenten schützen und die Software dennoch quasi offen nutzen lassen.
Dieser Vorteil ist jedoch mit erheblichen Reibungsverlusten verbunden. Besonders effizient ist diese Technik nicht. Ein Funktionsaufruf muss regelgerecht formuliert werden, nämlich in XML. Das XML muss (meistens) per HTTP im SOAP-Protokoll an den Webserver geschickt werden. Dieser muss das XML annehmen, aufschlüsseln und verarbeiten. Der Server formuliert das Ergebnis wieder in XML und sendet es und zurück.
Ein Beispiel: Google Search
Beispiele sind immer hilfreich, neue Themen zu veranschaulichen. Auf der Website phpclasses.org bietet der PHP-Programmierer Vijay Immanuel seine GoogleSearch-Klassenbibliothek an. Sie ist nicht perfekt und scheint nicht 100%ig kompatibel mit der aktuellen Web API von Google zu sein. Dafür ist sie einfach zu benutzen und gut für den Einstieg in dieses Thema geeignet. Die GoogleSearch-Bibliothek wiederum nutzt die SOAP-Bibliothek nusoap.php von NuSphere. Beide Bibliotheken sind freie Software, lizensiert unter LGPL. Diese Lizenz erlaubt es, nusoap.php und GoogleSearch.php auch in proprietärer Software zu verwenden.
Entwickler sollten sich auch das PEAR-Paket “Services_Google” ansehen. PEAR-Bibliotheken bieten in der Regel hohe Qualität. Allerdings existiert bisher nur eine Alpha-Version des Pakets.
Wie einfach es ist, mit GoogleSearch.php und nusoap.php Googles Web-Suche zu nutzen, zeigt das Beispiel:
// GoogleAPI-Klasse einbinden
require_once 'GoogleSearch.php';
// Neue Instanz unserer GoogleSearch-Klasse erzeugen
// Sie bindet nusoap.php selbst ein
$gs = new GoogleSearch();
// Google Lizenzschluessel (http://www.google.de/apis/)
$gs->setKey("lizenzschluessel");
// Was soll gesucht werden?
$gs->setQueryString("Linux");
// Die Suche konfigurieren...
$gs->setMaxResults(6);
$gs->setSafeSearch(true);
// Suche starten
$search_result = $gs->doSearch();
// Fehlermeldungen ausgeben, falls noetig
if(!$search_result)
if($err = $gs->getError()) {
printf( "<br>Fehler: %s", $err );
exit("<br>Ende...");
}
// Statusinformationen der aktuellen Suche ausgeben
printf( "<br><strong>Ungefähre Anzahl Suchergebnisse:</strong>
%s", $search_result->getEstimatedTotalResultsCount() );
printf( "<br><strong>Suchanfrage:</strong> %s",
$search_result->getSearchQuery() );
printf( "<br><strong>Dauer der Suche:</strong> %s Sekunden",
$search_result->getSearchTime() );
// Suchergebnisse ausgeben
print( "<br><b>Suchergebnisse: </b>" );
foreach($search_result->getResultElements() as $element) {
printf( "<hr><strong>Titel:</strong> %s ", $element->getTitle()
);
printf( "<br><strong>URL:</strong> %s ", $element->getURL()
);
printf( "<br><strong>Auszug:</strong> <em>%s</em>",
$element->getSnippet() );
printf( "<br><strong>Zusammenfassung:</strong> <em>%s</em>",
$element->getSummary() );
}
Der Quellcode ist selbsterklärend. In der Zeile 10 $gs->setKey(“lizenzschluessel”); muss der GoogleAPI-Lizenzschlüssel zwischen den Anführungszeichen eingetragen werden. Google sendet einen solchen Schlüssel jedem per E-Mail, der sich dafür registriert.
Das kleine Script sendet eine Suchanfrage an den Google Search Web-Service und zeigt die ersten sechs Ergebnisse an. Die Ergebnisse können dann beliebig weiterverarbeitet und formatiert werden, zum Beispiel im eigenen Design einer Website. Weitere Beispielskripte und die benötigten Klassenbibliotheken erhalten Sie als ZIP-Archiv zum Download.
Die Links:
Erstveröffentlichung am 05.10.2005
Weitere Beiträge:
- 5 Ideen wie Sie wiederkehrende Arbeitsschritte & Marketingprozesse gewinnbringend im Internet automatisieren! Ein Gastbeitrag von Robert Nabenhauer.
- Wachstum durch Facebook-Gewinnspiele: Wie Sie über Facebook virale Gewinnspiele & eine schnell wachsende Fangemeinde aufbauen
- Wie Sie aufmerksamkeitsstarke Prelaunch-, Launch- und Relaunch-Szenarien aufbauen und dabei Viralität, Spannung & Kaufkraft erzeugen
- Wie Sie waschechte Iphone-Apps mit PhoneGAP entwickeln, um am lukrativen App-Markt mitzumischen
- Wie Sie Ihr Shop-Sortiment so präsentieren, dass der Kunde in Zukunft mehr findet und eher kauft! Ein Gastbeitrag von Nicolas Schmidt-Voigt.
- 11 faszinierende BuddyPress-Plugins, um kostenlos aus WordPress ein soziales Netzwerk zu zaubern
- Die Vorboten einer neuen Internet-Industrie! Ein exklusiver Rückblick & Blick hinter die Kulissen der Clickbank-Exchange 2011 in New York.


Sehr cooler Artikel!
Habe selbst neulich über die Nachteile von Web APIs wie die von Google was geschrieben:
http://www.extremeprogrammer.de/risiken-von-web-apis/
Auf die Risiken eines plötzlichen Wegfalls eines solchen Angebots hättest Du meiner Meinung nach mehr eingehen müssen…
Aber trotzdem sehr lesenswert!!!