Memulai Library Klien PHP Google Data

Peringatan: Halaman ini membahas API lama Google, yaitu Google Data API; halaman ini hanya relevan dengan API yang tercantum dalam direktori Google Data API, banyak di antaranya telah diganti dengan API yang lebih baru. Untuk informasi tentang API baru tertentu, lihat dokumentasi API baru. Untuk informasi tentang memberi otorisasi permintaan dengan API baru, lihat Autentikasi dan Otorisasi Akun Google.

Jochen Hartmann, Tim Google Data API
Diperbarui Oktober 2008 (Awalnya ditulis oleh Daniel Holevoet)

Pengantar

Library Klien PHP Data Google adalah kumpulan class efektif yang memungkinkan Anda berinteraksi dengan Google Data API. Tidak seperti library klien lainnya, library ini dikemas sebagai bagian dari Zend Framework populer, tetapi juga dapat didownload secara terpisah. Serupa dengan library klien kami yang lain, library ini juga bersifat open source dan dirancang agar sederhana serta efisien, sehingga Anda dapat memulai project dengan cepat.

Prainstal

PHP mungkin sudah terinstal di mesin pengembangan atau server web Anda, jadi langkah pertama adalah memverifikasi fakta tersebut dan memastikan bahwa versi PHP cukup baru untuk digunakan bagi library klien. Cara termudah untuk memeriksanya adalah menempatkan file baru ke dalam direktori yang dapat diakses melalui web di server Anda. Masukkan informasi berikut ke dalam file:

<?php phpinfo(); ?>

Kemudian, pastikan bahwa kunci dapat diakses dari web dengan menyetel izin yang sesuai dan menavigasi ke lokasinya dari dalam browser Anda. Jika PHP terinstal dan server Anda dapat merender halaman PHP, maka Anda akan melihat sesuatu yang mirip dengan screenshot di bawah:

screenshot halaman info php

Screenshot menampilkan halaman info PHP. Halaman ini menunjukkan versi PHP yang telah diinstal (5.2.6 dalam kasus ini), beserta ekstensi yang telah diaktifkan (di bagian 'Configure Command') dan lokasi file konfigurasi internal PHP (di bagian 'Loaded Configuration File'). Jika halaman tidak ditampilkan atau jika versi PHP Anda lebih lama dari 5.1.4, Anda harus menginstal atau mengupgrade versi PHP. Jika tidak, Anda dapat melewati bagian berikutnya dan melanjutkan ke menginstal Library Klien PHP.

Catatan: Jika Anda memiliki akses ke command line dan berencana menggunakan PHP untuk menjalankan skrip command line, lihat bagian PHP command line dalam artikel ini.

Menginstal PHP

Penginstalan sedikit berbeda menurut platform, jadi penting untuk mengikuti petunjuk untuk platform tertentu selama penginstalan. Sebelum mempelajari lebih lanjut, ada baiknya menunjukkan bahwa paket yang telah diinstal sebelumnya yang juga mencakup server web Apache dan database MySQL bersama dengan PHP telah semakin populer. Untuk Windows, Mac OS X, dan Linux, terdapat project XAMPP. Pengguna Mac OS X juga memiliki pilihan untuk menggunakan project MAMP. Kedua paket ini mendukung OpenSSL di PHP (yang diperlukan untuk berinteraksi dengan feed yang diautentikasi).

Jika Anda menginstal PHP menggunakan langkah-langkah berikut, pastikan Anda juga menginstal dan mengaktifkan dukungan untuk OpenSSL. Detail selengkapnya tentang hal tersebut dapat ditemukan di bagian OpenSSL di situs PHP. Bagian berikut berfokus pada cara penginstalan PHP.

Di Windows

Cara termudah untuk menginstal atau mengupgrade PHP di Windows adalah dengan penginstal PHP yang tersedia di halaman download PHP.

  1. Pilih opsi penginstal PHP (di bagian biner Windows) yang sesuai dengan versi terbaru PHP dan izinkan download.
  2. Buka penginstal dan ikuti petunjuk wizard penginstalan.
  3. Saat wizard meminta Anda, pilih server web yang diinstal pada sistem Anda, sehingga wizard mengonfigurasi server agar bekerja dengan PHP.
  4. Periksa penginstalan Anda dengan mengikuti langkah-langkah yang diuraikan di bagian di atas.

Di Mac OS X

PHP disertakan dalam OS X, tetapi sebelum Anda menggunakannya, Anda harus mengupgrade ke versi terbaru PHP. Untuk mengupgrade, Anda dapat menginstal beberapa paket biner gratis, atau mengompilasinya sendiri. Untuk mengetahui detailnya, lihat halaman dokumentasi PHP tentang penginstalan di Mac OS X.

Setelah menginstal atau menyiapkan OS X, periksa penginstalan dengan mengikuti langkah-langkah yang diuraikan di bagian pra-penginstalan pada dokumen ini.

Pada Linux

Bergantung pada distribusi Linux, mungkin ada opsi penyiapan bawaan atau mudah digunakan untuk penginstalan PHP. Misalnya, di Ubuntu, Anda dapat menggunakan pengelola paket atau hanya mengetik perintah berikut di terminal:

sudo apt-get install php5

Jika tidak ada paket penginstalan yang tersedia dengan distribusi Linux, Anda harus menginstal dari kode sumber. Tersedia petunjuk terperinci untuk mengompilasi PHP untuk Apache 1.3 dan mengompilasi PHP untuk Apache 2. PHP.net juga memiliki petunjuk untuk server lain.

Menginstal Library Klien PHP Google Data

Setelah versi PHP yang terinstal berhasil, saatnya menginstal library klien. Library klien ini merupakan bagian dari Zend Framework open source, tetapi juga dapat didownload sebagai versi mandiri. Jika Anda sudah menginstal Zend Framework (versi 1.6 atau yang lebih baru), Anda dapat melewati penginstalan, karena Library Klien Google Data disertakan. Namun, memastikan Anda menggunakan versi terbaru framework akan menjamin bahwa Anda memiliki semua fitur terbaru dan perbaikan bug yang tersedia untuk Anda, sehingga biasanya hal ini direkomendasikan.

Mendownload framework lengkap tidak hanya akan memberi Anda akses ke Library Klien Data Google, tetapi juga framework lainnya. Library klien itu sendiri menggunakan beberapa class lain yang merupakan bagian dari Framework Zend lengkap, tetapi tidak perlu mendownload seluruh framework karena kami telah memaketkannya ke dalam download mandiri.

  1. Download file Library Klien Data Google. (Telusuri "Google Data API" di halaman tersebut.)
  2. Mendekompresi file yang didownload. Empat subdirektori harus dibuat:
    • demos — Contoh aplikasi
    • documentation — Dokumentasi untuk file library klien
    • library — File sumber library klien yang sebenarnya.
    • tests — File pengujian unit untuk pengujian otomatis.
  3. Tambahkan lokasi folder library ke jalur PHP (lihat bagian berikutnya)

Memeriksa untuk memastikan bahwa Anda dapat mengakses file library klien

Langkah terakhir adalah memastikan bahwa Anda dapat mereferensikan dan menyertakan file Library Klien PHP dari direktori tempat Anda membuat project. Hal ini dicapai dengan menetapkan variabel include_path dalam file konfigurasi PHP (php.ini). Variabel include_path berisi sejumlah lokasi direktori yang diperiksa PHP saat Anda mengeluarkan pernyataan require atau include yang menarik class, library, atau file eksternal ke dalam skrip saat ini, mirip dengan pernyataan import di Java. Anda perlu menambahkan lokasi file library klien ke apa yang telah ditetapkan di include_path Anda. Hal ini dapat dilakukan dengan dua cara (keduanya dijelaskan secara detail di bawah):

  • Tetapkan perintah include_path secara permanen di file konfigurasi php.ini dari command line — memerlukan akses shell dan izin tulis.
  • Tetapkan variabel jalur include_path di tingkat "per direktori" — memerlukan server web Apache dan kemampuan untuk membuat file .htaccess.
  • Gunakan fungsi set_include_path() untuk menetapkan jalur penyertaan secara dinamis di skrip Anda — dapat ditetapkan secara dinamis di setiap file .php.

Jika Anda memiliki akses shell dan izin tulis ke file php.ini (atau jika Anda menulis kode di komputer lokal Anda), cukup ikuti petunjuk dalam lampiran A. Jika menggunakan server web Apache dan memiliki kemampuan untuk membuat file .htaccess, Anda dapat menetapkan variabel include_path di level "per direktori", yang berarti semua file di direktori tempat Anda bekerja otomatis dapat mereferensikan direktori library klien.

Anda dapat menentukan opsi konfigurasi PHP seperti yang ditunjukkan dalam cuplikan di bawah:

# 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>

Catatan: Lihat Manual PHP untuk informasi selengkapnya tentang mengubah setelan konfigurasi.

Jika Anda tidak memiliki akses shell ke server dan tidak dapat mengubah atau membuat file .htaccess yang selalu dapat menggunakan fungsi set_include_path. Perhatikan bahwa Anda mungkin sudah memiliki beberapa nilai yang ditetapkan untuk include_path sehingga sebaiknya ikuti model di bawah untuk menambahkan nilai baru, bukan menimpa seluruh jalur:

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

Catatan: Lihat halaman manual PHP untuk detail selengkapnya tentang fungsi set_include_path.

Menjalankan Penginstalan PHP

Untuk memverifikasi bahwa jalur sertakan telah ditetapkan dengan benar, Anda dapat menjalankan skrip PHP Installation Checker. Cukup salin dan tempel konten file tersebut ke dalam file baru di direktori yang dapat diakses melalui web di server Anda dan buka dari browser. Jika Anda melihat output yang mirip dengan di bawah ini, berarti semuanya telah dikonfigurasi dengan benar dan Anda siap menggunakan Library Klien PHP:

screenshot output pemeriksa php

Jika Anda melihat error (seperti pada screenshot di bawah), pastikan Anda mengikuti petunjuknya. Ekstensi Anda mungkin hilang atau jalur Anda mungkin masih belum ditetapkan dengan benar. Harap diingat bahwa Anda mungkin perlu memulai ulang server agar perubahan dapat diterapkan. Ini hanya berlaku jika Anda benar-benar mengubah file php.ini. Screenshot di bawah menunjukkan bahwa include_path ditetapkan ke /path/to/nowhere:

screenshot output pemeriksa php

Catatan: Perlu diketahui bahwa pemeriksa Penginstalan PHP memeriksa hal-hal berikut secara berurutan: (1) ekstensi PHP yang diperlukan diinstal, (2) apakah include_path mengarah ke direktori Library Klien PHP, (3) koneksi SSL dapat dibuat, dan terakhir, dapatkah koneksi dibuat ke YouTube Data API. Jika pengujian tertentu gagal, pengujian yang tersisa tidak akan dijalankan.

Setelah library klien diinstal, saatnya untuk mencoba menjalankan sampel.

Menjalankan contoh

Di root direktori Zend/Gdata adalah folder demo — contoh untuk membantu Anda memulai. Beberapa contoh ini dirancang untuk dijalankan dari command line seperti demos/Zend/Gdata/Blogger.php dan demos/Zend/Gdata/Spreadsheet-ClientLogin.php, dan Anda dapat menjalankannya dengan php /path/to/example. Contoh lainnya dapat dijalankan dari command line dan browser web. Jika ingin melihatnya di browser, keduanya harus ditempatkan di direktori mana pun yang akan Anda gunakan untuk menayangkan halaman. Contoh-contoh ini akan memberikan gambaran dasar tentang cara menulis dan menjalankan aplikasi Data Google, tetapi jika Anda sudah siap membuat project lainnya, ada resource lain untuk programmer yang ingin tahu.

Catatan: Jika Anda tertarik melihat demo berbasis web secara online, kunjungi googlecodesamples.com dan cari aplikasi PHP.

Tempat untuk Mempelajari Lebih Lanjut

Tempat terbaik untuk mencari informasi tentang class yang merupakan bagian dari library klien adalah panduan referensi API di situs Zend Framework. Pastikan untuk memilih paket Zend_Gdata dari drop-down.

Pada tahap ini, Anda seharusnya sudah siap untuk memulai coding. Jadi, lanjutkan, tulis beberapa aplikasi yang bagus. Kami menantikan hasil Anda.

Anda dapat menemukan panduan developer PHP untuk layanan berikut:

Karena Library Klien PHP adalah project open source, dukungan untuk lebih banyak API terus ditambahkan. Setiap layanan memiliki grup dukungannya sendiri, lihat entri FAQ kami untuk mencantumkan grup dukungan yang tersedia.

Jika Anda memerlukan bantuan untuk memecahkan masalah panggilan API, tersedia artikel yang tersedia mengenai proses debug permintaan API menggunakan alat tangkapan traffic jaringan dan cara menggunakan server proxy dengan Google Data API. Ada juga beberapa artikel eksternal yang tersedia tentang menginstal XAMPP di Linux dan menginstal XAMPP di Windows. Selain semua artikel ini, pastikan Anda membaca postingan tentang Library Klien PHP di blog Tips Google Data API.

Lampiran A: Mengedit jalur PHP di file konfigurasi php.ini

Jalur PHP adalah variabel yang berisi daftar lokasi yang ditelusuri PHP saat mencari library tambahan selama pemuatan. Agar dapat memuat dan mengakses file Library Klien PHP Data Google di komputer atau server Anda, file-file tersebut harus ditempatkan di lokasi yang diketahui PHP. Atau, lokasi file perlu ditambahkan ke jalur PHP. Perlu diketahui bahwa perubahan pada file php.ini biasanya mengharuskan mulai ulang server Anda. Anda selalu dapat memverifikasi nilai variabel include_path saat ini dengan membuka halaman Info PHP yang dibahas sebelumnya. Cari sel Loaded Configuration File pada tabel pertama dan temukan jalur di kolom sebelah kanan.

Catatan: Jika mendapati bahwa Anda menggunakan php dari command line, Anda mungkin perlu mengubah variabel jalur tambahan. Pastikan untuk meninjau Lampiran B: Menggunakan PHP dari command line.

Setelah Anda menemukan file php.ini, ikuti langkah-langkah berikut untuk ditambahkan ke jalur tersebut.

  1. Buka file php.ini di editor teks favorit Anda.
  2. Temukan baris yang merujuk ke jalur PHP, dan seharusnya dimulai dengan include_path.
  3. Tambahkan jalur yang Anda simpan Zend Framework ke daftar lokasi yang sudah ada, yang menunggu jalur baru Anda dengan pemisah yang ditentukan untuk OS Anda (: pada sistem seperti Unix, ; di Windows). Jalur yang benar pada sistem seperti Unix akan terlihat seperti ini:
    /path1:/path2:/usr/local/lib/php/library
    Di Windows, jalurnya akan terlihat seperti ini:
    \path1;\path2;\php\library
  4. Simpan dan tutup file tersebut.

Catatan: Di Mac OS X, Finder tidak mengizinkan akses ke file yang berada di lokasi sistem seperti direktori /etc. Oleh karena itu, mungkin akan lebih mudah untuk mengeditnya menggunakan editor command line seperti vi atau pico. Untuk melakukannya, gunakan perintah seperti: pico /path/to/php.ini.

Lampiran B: Menggunakan PHP dari command line

Mulai PHP versi 5, tersedia utilitas command line di PHP yang disebut sebagai CLI untuk 'penafsir command line'. Penggunaan utilitas ini memungkinkan skrip php dijalankan dari command line. Situasi yang mungkin berguna adalah jika Anda menjalankan PHP secara lokal di mesin dan mencari cara untuk menguji beberapa skrip dengan cepat. Tentu saja, ini akan membutuhkan akses shell pada server Anda. Satu hal penting yang perlu diperhatikan adalah bahwa PHP biasanya menggunakan dua file php.ini terpisah, satu berisi opsi konfigurasi untuk PHP yang berjalan di server Anda, dan satu lagi untuk konfigurasi yang digunakan PHP saat menjalankan dari command line. Jika Anda tertarik untuk menjalankan aplikasi demo command line dari library klien, Anda juga perlu mengubah file php.ini command line.

Untuk menemukannya, ketik perintah berikut di sistem seperti Unix (Mac OS X, Linux, dan lainnya):

php -i | grep php.ini

Perintah tersebut akan membuat informasi berikut ditampilkan di terminal Anda:

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

Catatan: Tentu saja lokasi jalur yang sebenarnya (/etc/php...) mungkin berbeda di sistem Anda.

Lampiran C: Petunjuk dan Solusi

Bagian ini berisi uraian singkat tentang beberapa masalah yang ditemukan developer saat menggunakan PHP dan solusi yang sesuai.

Masalah dengan ekstensi dom-xml di XAMPP

Library klien PHP menggunakan class DOMDocument untuk mengubah permintaan dan respons XML menjadi objek PHP. Ekstensi dom-xml dapat menyebabkan masalah pada penanganan XML dan menghasilkan transformasi yang salah. Beberapa developer kami mendapati bahwa saat menggunakan XAMPP, konstruktor DOMDocument diganti dengan panggilan fungsi lama, seperti yang dijelaskan di situs PHP. Untuk memperbaiki masalah ini, pastikan penanganan XML tidak ditimpa di file php.ini Anda. Pastikan untuk menghapus referensi ke php_domxml.dll dari file konfigurasi Anda.

Waktu permintaan habis saat menggunakan library klien

Jika Anda menggunakan library klien untuk melakukan permintaan yang cukup besar, seperti mengupload video ke YouTube Data API, Anda mungkin perlu mengubah parameter timeout di class Zend_Http_Client Anda. Hal ini dapat dilakukan dengan mudah dengan meneruskan parameter $config selama pembuatan instance, yang menetapkan nilai timeout ke sesuatu selain default 10 detik:

// 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);

Beberapa penyedia hosting tidak mengizinkan koneksi https dari server mereka

Kami telah mendengar bahwa beberapa penyedia hosting tidak mengizinkan Anda membuat koneksi https dari server default mereka. Jika menerima pesan error yang mirip dengan yang di bawah ini, Anda mungkin perlu membuat koneksi https melalui proxy yang aman:

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

Penyedia hosting Anda harus memiliki informasi tentang alamat server proxy yang sebenarnya untuk digunakan. Cuplikan di bawah ini menunjukkan cara konfigurasi proxy kustom dapat digunakan dengan Library Klien PHP:

// 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");

}

Histori Revisi

1 Oktober 2008

Diperbarui oleh Jochen Hartmann. Update ini berisi perubahan berikut:

  • Membuat konfigurasi PHP untuk server web lebih jelas dengan memindahkan bagian yang merujuk ke PHP command line ke dalam lampiran.
  • Menambahkan catatan tentang beberapa file konfigurasi php.ini.
  • Menambahkan bagian tentang cara menetapkan include_path secara dinamis.
  • Menambahkan bagian pada skrip pemeriksa penginstalan.
  • Menambahkan link ke sampel online.
  • Menambahkan link untuk XAMPP dan MAMP.
  • Menambahkan lampiran 'Petunjuk dan Solusi'.