Erste Schritte mit der Google Data-Clientbibliothek für PHP

Warnung: Diese Seite bezieht sich auf die älteren Google Data APIs. Sie ist nur für die APIs relevant, die im Verzeichnis der Google Data APIs aufgeführt sind. Viele davon wurden durch neuere APIs ersetzt. Informationen zu einer bestimmten neuen API finden Sie in der Dokumentation der neuen API. Informationen zum Autorisieren von Anfragen mit einer neueren API finden Sie unter Authentifizierung und Autorisierung von Google-Konten.

Jochen Hartmann, Google Data APIs-Team
Aktualisiert im Oktober 2008 (ursprünglich verfasst von Daniel Holevoet)

Einführung

Die Google Data PHP-Clientbibliothek ist eine leistungsstarke Sammlung von Klassen, mit denen Sie mit den Google Data APIs interagieren können. Im Gegensatz zu unseren anderen Clientbibliotheken ist es Teil des beliebten Zend-Frameworks, kann aber auch separat heruntergeladen werden. Ähnlich wie unsere anderen Clientbibliotheken ist es auch Open Source und einfach und effizient. So können Sie schnell mit Ihren Projekten beginnen.

Vor der Installation

PHP ist möglicherweise schon auf Ihrem Entwicklungscomputer oder Webserver installiert. Daher müssen Sie dies zuerst prüfen und prüfen, ob die aktuelle PHP-Version für die Client-Bibliothek verwendet werden kann. Am einfachsten prüfen Sie dies, indem Sie eine neue Datei in einem Verzeichnis auf Ihrem Server ablegen, auf das über das Internet zugegriffen werden kann. Geben Sie die folgenden Informationen in die Datei ein:

<?php phpinfo(); ?>

Sorgen Sie dann dafür, dass der Zugriff auf das Web möglich ist. Legen Sie dazu die entsprechenden Berechtigungen fest und gehen Sie in Ihrem Browser zum entsprechenden Speicherort. Wenn PHP installiert ist und Ihr Server in der Lage ist, PHP-Seiten zu rendern, wird ein Screenshot ähnlich dem folgenden angezeigt:

Screenshot: Seite mit PHP-Infoseite

Der Screenshot zeigt die PHP-Infoseite. Auf dieser Seite sehen Sie die installierte PHP-Version (in diesem Fall 5.2.6) sowie die aktivierten Erweiterungen (im Abschnitt "Konfigurieren des Befehls") und den Speicherort der internen Konfigurationsdatei von PHP (im Abschnitt "Geladene Konfigurationsdatei"). Wenn die Seite nicht angezeigt wird oder Ihre PHP-Version älter als 5.1.4 ist, müssen Sie Ihre PHP-Version installieren oder aktualisieren. Andernfalls können Sie den nächsten Abschnitt überspringen und mit der Installation der PHP-Clientbibliothek fortfahren.

Hinweis: Wenn Sie Zugriff auf die Befehlszeile haben und PHP zum Ausführen von Befehlszeilenskripts verwenden möchten, lesen Sie den Abschnitt über PHP-Befehlszeilen.

PHP installieren

Die Installation variiert je nach Plattform. Daher ist es wichtig, dass Sie die Anleitung für die jeweilige Plattform befolgen. Vorab möchten wir darauf hinweisen, dass vorinstallierte Pakete, die auch den Apache-Webserver, die MySQL-Datenbank und PHP enthalten, immer beliebter geworden sind. Für Windows, Mac OS X und Linux gibt es das XAMPP-Projekt. Mac OS X-Nutzer können auch das MAMP-Projekt verwenden. Beide Pakete unterstützen OpenSSL in PHP. Das ist für die Interaktion mit authentifizierten Feeds erforderlich.

Wenn Sie PHP mithilfe der folgenden Schritte installieren, sollten Sie auch die Unterstützung für OpenSSL installieren und aktivieren. Weitere Informationen hierzu finden Sie im OpenSSL-Abschnitt der PHP-Website. In den folgenden Abschnitten erfahren Sie, wie Sie PHP selbst installieren.

Unter Windows

Am einfachsten installieren oder aktualisieren Sie PHP unter Windows mit dem PHP-Installationsprogramm auf der PHP-Downloadseite.

  1. Wählen Sie im Abschnitt „Windows-Binärprogramme“ die Option für das PHP-Installationsprogramm aus, die der neuesten Version von PHP entspricht, und lassen Sie das Herunterladen zu.
  2. Öffnen Sie das Installationsprogramm und folgen Sie der Anleitung des Installationsassistenten.
  3. Wenn Sie im Assistenten dazu aufgefordert werden, wählen Sie den Webserver aus, der auf Ihrem System installiert ist, damit der Server für PHP konfiguriert werden kann.
  4. Prüfen Sie Ihre Installation mithilfe der Anleitung oben.

Unter Mac OS X

PHP ist in OS X enthalten. Bevor Sie es verwenden, sollten Sie jedoch ein Upgrade auf die neueste Version von PHP ausführen. Für das Upgrade können Sie eines der kostenlosen Binärpakete installieren oder selbst kompilieren. Weitere Informationen finden Sie auf der PHP-Dokumentationsseite zur Installation unter Mac OS X.

Prüfen Sie nach der Installation oder anderen Einrichtung von OS X Ihre Installation, indem Sie die Schritte im Abschnitt zur Vorinstallation dieses Dokuments ausführen.

Unter Linux

Je nach Linux-Distribution gibt es möglicherweise eine integrierte oder einfach zu verwendende Einrichtungsoption für die PHP-Installation. Unter Ubuntu können Sie beispielsweise einen Paketmanager verwenden oder einfach Folgendes in ein Terminal eingeben:

sudo apt-get install php5

Wenn für Ihre Linux-Distribution keine Paketinstallation verfügbar ist, müssen Sie die Installation aus dem Quellcode ausführen. Eine ausführliche Anleitung finden Sie unter PHP für Apache 1.3 kompilieren und PHP für Apache 2 kompilieren. Für PHP.net gibt es auch Anleitungen für andere Server.

Google Data-PHP-Clientbibliothek installieren

Nachdem Sie nun eine funktionierende PHP-Version installiert haben, können Sie die Clientbibliothek installieren. Die Clientbibliothek ist Teil des Open-Source-Frameworks Zend Framework, kann aber auch als eigenständige Version heruntergeladen werden. Wenn Sie bereits eine Version des Zend-Frameworks installiert haben (Version 1.6 oder höher), können Sie die Installation überspringen, da die Google Data-Clientbibliothek enthalten ist. Die Verwendung der aktuellen Version des Frameworks garantiert jedoch, dass Ihnen alle aktuellen Funktionen und Fehlerkorrekturen zur Verfügung stehen. Daher wird diese Vorgehensweise in der Regel empfohlen.

Wenn Sie das vollständige Framework herunterladen, erhalten Sie nicht nur Zugriff auf die Google Data-Clientbibliothek, sondern auch auf den Rest des Frameworks. Die Clientbibliothek selbst verwendet einige andere Klassen, die Teil des vollständigen Zend-Frameworks sind. Es ist jedoch nicht nötig, das gesamte Framework herunterzuladen, da wir sie als eigenständigen Download gebündelt haben.

  1. Laden Sie die Dateien der Google Data-Clientbibliothek herunter. Suchen Sie auf dieser Seite nach „Google Data APIs“.
  2. Dekomprimieren Sie die heruntergeladenen Dateien. Vier Unterverzeichnisse sollten erstellt werden:
    • demos – Beispielanwendungen
    • documentation: Dokumentation für die Dateien der Clientbibliothek
    • library: Die tatsächlichen Quelldateien der Clientbibliothek.
    • tests: Unittestdateien für automatisierte Tests.
  3. Fügen Sie dem PHP-Pfad den Speicherort des Ordners library hinzu (siehe nächster Abschnitt).

Prüfen, ob Sie auf die Dateien der Clientbibliothek zugreifen können

Im letzten Schritt müssen Sie die Dateien der PHP-Clientbibliothek aus dem Verzeichnis, in dem Sie Ihr Projekt erstellen, referenzieren und einfügen. Dazu wird die Variable include_path in der Konfigurationsdatei von PHP (php.ini) festgelegt. Die Variable include_path enthält eine Reihe von Verzeichnispfaden, die PHP prüft, wenn Sie eine require- oder include-Anweisung ausgeben, die externe Klassen, Bibliotheken oder Dateien in Ihr aktuelles Skript abruft, ähnlich wie die Anweisung import in Java. Sie müssen den Speicherort der Clientbibliotheksdateien an das anhängen, was in Ihrem include_path bereits festgelegt ist. Dies kann auf zwei Arten erreicht werden (beides wird im Folgenden ausführlich erläutert):

  • Sie können die include_path-Anweisung dauerhaft in der Konfigurationsdatei php.ini über die Befehlszeile festlegen. Dazu sind Shell-Zugriffs- und Schreibberechtigungen erforderlich.
  • Legen Sie die Pfadvariable include_path auf der Ebene „Pro Verzeichnis“ fest. Dafür sind der Apache-Webserver und die Berechtigung zum Erstellen von .htaccess-Dateien erforderlich.
  • Verwenden Sie die Funktion set_include_path(), um den Include-Pfad in Ihren Skripts dynamisch festzulegen. Dies kann in jeder Ihrer .php-Dateien dynamisch festgelegt werden.

Wenn Sie Shell-Zugriff und Schreibberechtigungen für die Datei php.ini haben oder Code auf Ihrem lokalen Computer schreiben, folgen Sie einfach der Anleitung in Anhang A. Wenn Sie den Apache-Webserver verwenden und die Möglichkeit haben, .htaccess-Dateien zu erstellen, können Sie die Variable include_path auf Ebene des Verzeichnisses festlegen. Das bedeutet, dass alle Dateien in dem Verzeichnis, in dem Sie arbeiten, automatisch auf das Verzeichnis der Clientbibliothek verweisen können.

Sie können die PHP-Konfigurationsoptionen wie im Snippet unten angeben:

# This works for PHP5 in both Apache versions 1 and 2
<IfModule mod_php5.c>
  php_value include_path        ".:/usr/local/lib/php:/path/to/ZendGdata/library"
</IfModule>

Hinweis: Weitere Informationen zum Ändern der Konfigurationseinstellungen finden Sie im PHP-Handbuch.

Wenn Sie keinen Shell-Zugriff auf Ihren Server haben und keine .htaccess-Dateien ändern oder erstellen können, können Sie jederzeit die Funktion set_include_path verwenden. Möglicherweise ist bereits ein Wert für include_path festgelegt. Sie können beispielsweise dem folgenden Modell folgen, um die neuen Werte anzuhängen, anstatt den gesamten Pfad zu überschreiben:

$clientLibraryPath = '/path/to/ZendGdata/library';
$oldPath = set_include_path(get_include_path() . PATH_SEPARATOR . $clientLibraryPath);

Hinweis: Weitere Informationen zur Funktion set_include_path finden Sie auf den manuellen PHP-Seiten.

PHP-Installationsprüfung ausführen

Mit dem Skript Installation Checker in PHP können Sie überprüfen, ob der Pfad korrekt festgelegt wurde. Kopieren Sie einfach den Inhalt der Datei und fügen Sie sie in eine neue Datei in einem Verzeichnis auf Ihrem Server ein, auf das Sie über das Internet zugreifen können. Rufen Sie die Datei über Ihren Browser auf. Wenn die Ausgabe in etwa so aussieht, ist alles entsprechend konfiguriert und Sie können die PHP-Clientbibliothek verwenden:

Screenshot der PHP-Installationsprüfung

Wenn Sie Fehler sehen (siehe Screenshot unten), folgen Sie der Anleitung. Es fehlen möglicherweise Erweiterungen oder Ihr Pfad ist nicht korrekt festgelegt. Unter Umständen müssen Sie Ihren Server neu starten, damit die Änderungen wirksam werden. Dies gilt nur, wenn Sie die php.ini-Datei tatsächlich ändern. Der folgende Screenshot zeigt, dass include_path auf /path/to/nowhere gesetzt ist:

Screenshot der PHP-Installationsprüfung

Hinweis: Beachten Sie, dass die PHP-Installationsprüfung nacheinander überprüft, (1) ob die erforderlichen PHP-Erweiterungen installiert sind, (2) auf das Verzeichnis der PHP-Clientbibliothek verweist, (3) SSL-Verbindungen herstellen und schließlich eine Verbindung zur YouTube Data API herstellen können. Wenn ein bestimmter Test fehlschlägt, werden die verbleibenden Tests nicht ausgeführt.

Nachdem die Clientbibliothek installiert ist, können Sie die Beispiele ausführen.

Beispiele ausführen

Im Stammverzeichnis des Zend/Gdata-Verzeichnisses befindet sich ein Ordner mit Demos – Beispielen, die Ihnen den Einstieg erleichtern. Einige dieser Beispiele sind für die Ausführung über die Befehlszeile vorgesehen, z. B. demos/Zend/Gdata/Blogger.php und demos/Zend/Gdata/Spreadsheet-ClientLogin.php. Sie können sie mit php /path/to/example ausführen. Die verbleibenden Beispiele können sowohl über die Befehlszeile als auch über einen Webbrowser ausgeführt werden. Wenn Sie diese in einem Browser aufrufen möchten, müssen Sie sie in einem beliebigen Verzeichnis für die Bereitstellung von Webseiten platzieren. Diese Beispiele sollten eine grundlegende Vorstellung davon vermitteln, wie eine Google-Datenanwendung geschrieben und ausgeführt wird. Wenn Sie jedoch mehr benötigen, gibt es weitere Ressourcen für den neugierigen Programmierer.

Hinweis: Wenn Sie die webbasierten Demos online sehen möchten, besuchen Sie googlecodesamples.com und suchen Sie nach den PHP-Anwendungen.

Weitere Informationen

Informationen zu den Klassen, die Teil der Clientbibliothek sind, finden Sie am besten im API-Referenzhandbuch auf der Website von Zend Framework. Wählen Sie im Drop-down-Menü das Paket Zend_Gdata aus.

Jetzt sollten Sie mit dem Programmieren beginnen. Also los, schreib ein paar tolle Apps. Wir freuen uns auf deine Ergebnisse.

Sie finden die PHP-Entwicklerleitfäden für die folgenden Dienste:

Da die PHP-Clientbibliothek ein Open-Source-Projekt ist, werden ständig weitere APIs unterstützt. Für jeden Dienst gibt es eine eigene Supportgruppe. Im FAQ-Eintrag finden Sie eine Liste der verfügbaren Supportgruppen.

Wenn Sie Hilfe bei der Behebung von Fehlern bei API-Aufrufen benötigen, lesen Sie die Artikel zur Fehlerbehebung bei API-Anfragen mit Tools zur Erfassung von Netzwerkverkehr und zur Verwendung von Proxyservern mit den Google Data APIs. Es gibt auch einige externe Artikel zur Installation von XAMPP unter Linux und zur Installation von XAMPP unter Windows. Zusätzlich zu all diesen Artikeln sollten Sie die Beiträge zur PHP-Clientbibliothek im Google Data API-Tipps-Blog lesen.

Anhang A: PHP-Pfad in der Konfigurationsdatei php.ini bearbeiten

Der PHP-Pfad ist eine Variable, die eine Liste von Speicherorten enthält, die PHP beim Laden nach zusätzlichen Bibliotheken sucht. Damit PHP Dateien der Google Data-PHP-Clientbibliothek auf Ihrem Computer oder Server laden und darauf zugreifen kann, müssen sie an einem Speicherort gespeichert werden, den PHP kennt. Alternativ können Sie den Speicherort der Dateien an Ihren PHP-Pfad anhängen. Hinweis: Änderungen an der Datei php.ini erfordern in der Regel einen Neustart des Servers. Sie können den aktuellen Wert der Variablen include_path jederzeit auf der Seite Infos zu PHP prüfen. Suchen Sie in der ersten Tabelle nach der Zelle Geladene Konfigurationsdatei und suchen Sie den Pfad in der Spalte rechts.

Hinweis: Wenn Sie php über die Befehlszeile verwenden, müssen Sie möglicherweise eine zusätzliche Pfadvariable ändern. Lesen Sie Anhang B: PHP über die Befehlszeile verwenden.

Sobald Sie die Datei php.ini gefunden haben, führen Sie die folgenden Schritte aus, um sie an den Pfad anzuhängen.

  1. Öffnen Sie die Datei php.ini in einem Texteditor.
  2. Suchen Sie die Zeile, die auf den PHP-Pfad verweist. Sie sollte mit include_path beginnen.
  3. Fügen Sie den Pfad, den Sie im Zend-Framework gespeichert haben, an die Liste der vorhandenen Speicherorte an. Verwenden Sie dabei den neuen Pfad mit dem festgelegten Trennzeichen für Ihr Betriebssystem (: auf Unix-ähnlichen Systemen, ; unter Windows). Ein richtiger Pfad auf Unix-ähnlichen Systemen sieht in etwa so aus:
    /path1:/path2:/usr/local/lib/php/library
    Unter Windows sieht er etwa so aus:
    \path1;\path2;\php\library
  4. Speichern und schließen Sie die Datei.

Hinweis: Unter Mac OS X lässt der Finder keinen Zugriff auf Dateien zu, die sich an Systemspeicherorten wie dem Verzeichnis /etc befinden. Daher ist es am einfachsten, sie mit einem Befehlszeileneditor wie vi oder pico zu bearbeiten. Verwenden Sie dazu einen Befehl wie pico /path/to/php.ini.

Anhang B: PHP über die Befehlszeile verwenden

Ab PHP-Version 5 ist ein Befehlszeilendienstprogramm in PHP verfügbar, das als Befehlszeilen-Interpreter bezeichnet wird. Mit diesem Dienstprogramm können Sie PHP-Skripts über die Befehlszeile ausführen. Das kann hilfreich sein, wenn Sie PHP lokal auf Ihrem Computer ausführen und nach Skripts suchen, um sie schnell zu testen. Auf Ihrem Server ist dafür natürlich Shell-Zugriff erforderlich. Beachten Sie, dass PHP normalerweise zwei separate php.ini-Dateien verwendet. Die eine enthält die Konfigurationsoptionen für PHP, die auf Ihrem Server ausgeführt werden, und die andere für die Konfigurationen, die PHP bei der Ausführung über die Befehlszeile verwendet. Wenn Sie die Befehlszeilen-Demoanwendungen über die Clientbibliothek ausführen möchten, müssen Sie auch die Datei php.ini der Befehlszeile ändern.

Geben Sie dazu auf Unix-ähnlichen Systemen (Mac OS X oder Linux) die folgenden Befehle ein:

php -i | grep php.ini

Dieser Befehl sollte folgende Informationen im Terminal anzeigen:

Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini

Hinweis: Natürlich können die tatsächlichen Pfadspeicherorte (/etc/php...) in Ihrem System abweichen.

Anhang C: Hinweise und Lösungen

Dieser Abschnitt enthält eine kurze Beschreibung einiger Probleme, die Entwickler bei der Arbeit mit PHP und den entsprechenden Lösungen festgestellt haben.

Problem mit der dom-xml-Erweiterung in XAMPP

Die PHP-Clientbibliothek verwendet die DOMDocument-Klassen, um XML-Anfragen und -Antworten in PHP-Objekte umzuwandeln. Die Erweiterung dom-xml kann Probleme bei der XML-Verarbeitung verursachen und zu falschen Transformationen führen. Einige unserer Entwickler haben festgestellt, dass der DOMDocument-Konstruktor bei der Verwendung von XAMPP mit einem älteren Funktionsaufruf überschrieben wird, wie auf der PHP-Website erläutert. Achten Sie darauf, dass die XML-Verarbeitung in der Datei php.ini nicht überschrieben wird, um dieses Problem zu beheben. Entfernen Sie Verweise auf php_domxml.dll aus Ihrer Konfigurationsdatei.

Zeitüberschreitung bei Anfragen bei Verwendung der Clientbibliothek

Wenn du die Clientbibliothek verwendest, um relativ große Anfragen zu senden und z. B. Videos in die YouTube Data API hochzuladen, musst du möglicherweise den timeout-Parameter in deiner Zend_Http_Client-Klasse ändern. Dazu können Sie während der Instanziierung einfach einen $config-Parameter übergeben, der den Wert von timeout auf einen anderen Wert als den Standardwert von 10 Sekunden setzt:

// assuming your Zend_Http_Client already exists as $httpClient
// and that you want to change the timeout from the 10 second default to 30 seconds

$config = array('timeout' => 30);
$httpClient->setConfig($config);

Einige Hostanbieter lassen keine HTTPS-Verbindungen von ihren Servern zu

Wir haben gehört, dass einige Hostanbieter das Herstellen von https-Verbindungen über ihre Standardserver nicht zulassen. Wenn eine Fehlermeldung ähnlich der folgenden angezeigt wird, müssen Sie möglicherweise HTTPS-Verbindungen über einen sicheren Proxy herstellen:

Unable to Connect to sslv2://www.google.com:443. Error #110: Connection timed out

Ihr Hostanbieter sollte Informationen zur tatsächlichen Adresse des zu verwendenden Proxyservers haben. Das folgende Snippet zeigt, wie eine benutzerdefinierte Proxykonfiguration mit der PHP-Clientbibliothek verwendet werden kann:

// Load the proxy adapter class in addition to the other required classes
Zend_Loader::loadClass('Zend_Http_Client_Adapter_Proxy');

// Configure the proxy connection with your hostname and portnumber
$config = array(
    'adapter'    => 'Zend_Http_Client_Adapter_Proxy',
    'proxy_host' => 'your.proxy.server.net',
    'proxy_port' => 3128
);

// A simple https request would be an attempt to authenticate via ClientLogin
$proxiedHttpClient = new Zend_Http_Client('http://www.google.com:443', $config);

$username = 'foo@example.com';
$password = 'barbaz';

// The service name would depend on what API you are interacting with, here
// we are using the Google DocumentsList Data API
$service = Zend_Gdata_Docs::AUTH_SERVICE_NAME;

// Try to perform the ClientLogin authentication using our proxy client.
// If there is an error, we exit since it doesn't make sense to go on.
try {

  // Note that we are creating another Zend_Http_Client
  // by passing our proxied client into the constructor.

  $httpClient = Zend_Gdata_ClientLogin::getHttpClient(
      $username, $password, $service, $proxiedHttpClient);

} catch (Zend_Gdata_App_HttpException $httpException) {

  // You may want to handle this differently in your application
  exit("An error occurred trying to connect to the proxy server\n" .
      $httpException->getMessage() . "\n");

}

Überarbeitungsverlauf

1. Oktober 2008

Aktualisiert von Jochen Hartmann Dieses Update enthält die folgenden Änderungen:

  • Die PHP-Konfiguration für Webserver wurde klarer formuliert, indem Abschnitte, die sich auf die Befehlszeilen-PHP-Funktion beziehen, in einen Anhang verschoben wurden.
  • Hinweis zu mehreren php.ini-Konfigurationsdateien hinzugefügt.
  • Es wurden Abschnitte zur dynamischen Festlegung des Include-Pfads hinzugefügt.
  • Dem Skript für die Installationsprüfung wurde ein Abschnitt hinzugefügt.
  • Link zu Online-Beispielen hinzugefügt.
  • Links für XAMPP und MAMP hinzugefügt.
  • Der Anhang „Hints and Solutions“ wurde hinzugefügt.