Bắt đầu sử dụng Thư viện ứng dụng PHP dữ liệu của Google

Cảnh báo: Trang này giới thiệu về các API cũ của Google, API dữ liệu của Google; trang này chỉ liên quan đến các API được liệt kê trong thư mục API dữ liệu của Google, nhiều API trong số này đã được thay thế bằng các API mới hơn. Để biết thông tin về một API mới cụ thể, hãy xem tài liệu của API mới. Để biết thông tin về việc uỷ quyền cho các yêu cầu bằng một API mới hơn, hãy xem phần Xác thực và ủy quyền tài khoản Google.

Jochen Hartmann, Nhóm Google Data API
Cập nhật tháng 10 năm 2008 (Tác giả: Daniel Buttonvoet)

Giới thiệu

Thư viện ứng dụng Google Data PHP là một tập hợp mạnh mẽ các lớp cho phép bạn tương tác với API dữ liệu của Google. Không giống như các thư viện ứng dụng khác, thư viện này được đóng gói trong Zend Framework phổ biến nhưng cũng có thể tải xuống riêng. Tương tự như các thư viện ứng dụng khác, API này cũng là nguồn mở và được thiết kế đơn giản và hiệu quả, cho phép bạn bắt đầu các dự án một cách nhanh chóng.

Cài đặt trước

PHP có thể đã được cài đặt trên máy phát triển hoặc máy chủ web của bạn, do đó, bước đầu tiên là xác minh thực tế đó và đảm bảo rằng phiên bản PHP đủ gần đây để sử dụng cho thư viện ứng dụng. Cách dễ nhất để kiểm tra là đặt một tệp mới vào một thư mục có thể truy cập trên web trên máy chủ của bạn. Nhập thông tin sau vào tệp:

<?php phpinfo(); ?>

Sau đó, đảm bảo rằng trang web có thể truy cập được bằng cách thiết lập các quyền thích hợp và chuyển đến vị trí của trình duyệt đó trong trình duyệt. Nếu PHP được cài đặt và máy chủ của bạn có thể hiển thị trang PHP, bạn sẽ thấy nội dung tương tự như ảnh chụp màn hình bên dưới:

Ảnh chụp màn hình trang thông tin php

Ảnh chụp màn hình trang thông tin về PHP. Trang này cho bạn biết phiên bản PHP đã được cài đặt (trong trường hợp này là 5.2.6), cùng với tiện ích đã được bật (trong phần 'Định cấu hình lệnh') và vị trí của tệp cấu hình nội bộ của PHP (trong phần "Tệp cấu hình đã tải"). Nếu trang không hiển thị hoặc nếu phiên bản PHP của bạn cũ hơn 5.1.4, bạn sẽ cần cài đặt hoặc nâng cấp phiên bản PHP của mình. Nếu không, bạn có thể bỏ qua phần tiếp theo và tiếp tục cài đặt Thư viện ứng dụng PHP.

Lưu ý: Nếu bạn có quyền truy cập vào dòng lệnh và dự định sử dụng PHP để chạy tập lệnh dòng lệnh, vui lòng xem phần PHP dòng lệnh của bài viết này.

Đang cài đặt PHP

Quá trình cài đặt khác nhau một chút theo nền tảng, vì vậy, điều quan trọng là làm theo hướng dẫn cho nền tảng cụ thể trong quá trình cài đặt. Trước khi chúng ta tìm hiểu sâu hơn, bạn nên chỉ ra rằng các gói cài đặt sẵn cũng bao gồm máy chủ web Apache và cơ sở dữ liệu MySQL cùng với PHP đã trở nên phổ biến. Có Windows, Mac OS X và Linux, có dự án XAMPP. Người dùng Mac OS X cũng có thể chọn sử dụng dự án MAMP. Cả hai gói này đều hỗ trợ OpenSSL trong PHP (bắt buộc phải tương tác với nguồn cấp dữ liệu được xác thực).

Nếu bạn cài đặt PHP bằng các bước dưới đây, hãy đảm bảo rằng bạn cũng cài đặt và bật tính năng hỗ trợ cho OpenSSL. Bạn có thể tìm thêm thông tin chi tiết về vấn đề này trong phần OpenSSL của trang web PHP. Các phần sau đây tập trung vào cách tự cài đặt PHP.

Trên Windows

Cách dễ nhất để cài đặt hoặc nâng cấp PHP trên Windows là bằng trình cài đặt PHP có sẵn trên trang tải xuống PHP.

  1. Chọn tuỳ chọn trình cài đặt PHP (trong phần nhị phân của Windows) tương ứng với phiên bản PHP mới nhất và cho phép tải xuống.
  2. Mở trình cài đặt và làm theo hướng dẫn của trình hướng dẫn cài đặt.
  3. Khi trình hướng dẫn nhắc bạn, hãy chọn máy chủ web được cài đặt trên hệ thống của bạn, để máy chủ định cấu hình máy chủ hoạt động với PHP.
  4. Kiểm tra việc cài đặt bằng cách làm theo các bước được nêu trong phần ở trên.

Trên Mac OS X

PHP có trong OS X, nhưng trước khi sử dụng, bạn nên nâng cấp lên phiên bản PHP mới nhất. Để nâng cấp, bạn có thể cài đặt bất kỳ gói nhị phân miễn phí nào hoặc tự biên dịch gói này. Để biết chi tiết, hãy xem trang tài liệu PHP về cách cài đặt trên Mac OS X.

Sau khi cài đặt hoặc thiết lập OS X, hãy kiểm tra việc cài đặt bằng cách làm theo các bước được nêu trong phần cài đặt trước của tài liệu này.

Trên Linux

Tùy thuộc vào bản phân phối Linux, có thể có tùy chọn thiết lập được tích hợp sẵn hoặc dễ sử dụng để cài đặt PHP. Ví dụ: trên Ubuntu, bạn có thể sử dụng trình quản lý gói hoặc chỉ cần nhập những nội dung sau vào cửa sổ dòng lệnh:

sudo apt-get install php5

Nếu không có bản cài đặt theo gói nào có sẵn với bản phân phối Linux của bạn, thì bạn phải cài đặt từ mã nguồn. Có hướng dẫn chi tiết về việc biên dịch PHP cho Apache 1.3biên dịch PHP cho Apache 2. PHP.net cũng có hướng dẫn cho các máy chủ khác.

Cài đặt Thư viện ứng dụng PHP dữ liệu của Google

Hiện bạn đã cài đặt phiên bản PHP đang hoạt động, đã đến lúc cài đặt thư viện ứng dụng. Thư viện ứng dụng là một phần của Khung Zend nguồn mở nhưng cũng có thể được tải xuống dưới dạng phiên bản độc lập. Nếu đã cài đặt phiên bản Khung Zend (phiên bản 1.6 trở lên), bạn có thể bỏ qua bước cài đặt vì Thư viện ứng dụng dữ liệu của Google đã được đưa vào. Tuy nhiên, bạn nên sử dụng phiên bản mới nhất của khung này để đảm bảo có tất cả các tính năng và bản sửa lỗi mới nhất, vì vậy bạn nên sử dụng.

Khi tải toàn bộ khung xuống, bạn sẽ có quyền truy cập vào không chỉ Thư viện dữ liệu Google mà còn phần còn lại của khung. Bản thân thư viện ứng dụng sử dụng một số lớp khác trong Khung Zend hoàn chỉnh, nhưng bạn không cần phải tải xuống toàn bộ khung vì chúng tôi đã đóng gói các thư viện này vào bản tải xuống độc lập.

  1. Tải các tệp trong Thư viện Google Data Client xuống. (Tìm kiếm "Google Data API" trên trang đó.)
  2. Giải nén các tệp đã tải xuống. Bạn nên tạo 4 thư mục con:
    • demos — Ứng dụng mẫu
    • documentation — Tài liệu về tệp trong thư viện ứng dụng
    • library – Các tệp nguồn của thư viện ứng dụng thực tế.
    • tests — Tệp kiểm thử đơn vị để kiểm thử tự động.
  3. Thêm vị trí của thư mục library vào đường dẫn PHP của bạn (xem phần tiếp theo)

Kiểm tra để đảm bảo rằng bạn có thể truy cập vào các tệp của thư viện ứng dụng

Bước cuối cùng là đảm bảo rằng bạn có thể tham chiếu và đưa các tệp Thư viện ứng dụng PHP vào thư mục mà bạn đang tạo dự án. Bạn có thể thực hiện việc này bằng cách đặt biến include_path trong tệp cấu hình của PHP (php.ini). Biến include_path chứa một số vị trí thư mục mà PHP xem xét khi bạn phát hành câu lệnh require hoặc include để kéo các lớp, thư viện hoặc tệp bên ngoài vào tập lệnh hiện tại của bạn, tương tự như câu lệnh import trong Java. Bạn cần thêm vị trí của các tệp thư viện ứng dụng vào các vị trí đã đặt trong include_path. Bạn có thể thực hiện việc này theo hai cách (cả hai đều được giải thích chi tiết ở bên dưới):

  • Đặt vĩnh viễn lệnh include_path trong tệp cấu hình php.ini của bạn từ dòng lệnh — yêu cầu quyền truy cập môi trường và quyền ghi.
  • Đặt biến đường dẫn include_path ở cấp độ "mỗi thư mục" — yêu cầu máy chủ web Apache và khả năng tạo tệp .htaccess.
  • Bạn có thể sử dụng hàm set_include_path() để tự động đặt đường dẫn bao gồm trong tập lệnh — có thể đặt động trong mỗi tệp .php của bạn.

Nếu bạn có quyền truy cập môi trường (shell) và quyền ghi vào tệp php.ini (hoặc nếu bạn đang viết mã trên máy cục bộ của mình), bạn chỉ cần làm theo hướng dẫn trong phụ lục A. Nếu đang sử dụng máy chủ web Apache và có khả năng tạo tệp .htaccess thì bạn có thể đặt biến include_path ở cấp "mỗi thư mục", có nghĩa là tất cả các tệp trong thư mục mà bạn đang làm việc đều có thể tự động tham chiếu thư mục thư viện ứng dụng.

Bạn có thể chỉ định tuỳ chọn cấu hình PHP như trong đoạn mã dưới đây:

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

Lưu ý: Hãy tham khảo Hướng dẫn sử dụng PHP để biết thêm thông tin về cách thay đổi các chế độ cài đặt cấu hình.

Nếu bạn không có quyền truy cập môi trường máy chủ và không thể sửa đổi hoặc tạo các tệp .htaccess mà bạn luôn có thể sử dụng hàm set_include_path. Lưu ý rằng có thể bạn đã đặt một số giá trị cho include_path, vì vậy, bạn nên làm theo mô hình dưới đây để thêm các giá trị mới, thay vì ghi đè toàn bộ đường dẫn:

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

Lưu ý: Vui lòng tham khảo các trang hướng dẫn sử dụng PHP để biết thêm thông tin chi tiết về hàm set_include_path.

Chạy Trình kiểm tra cài đặt PHP

Để xác minh rằng đường dẫn bao gồm đã được đặt đúng cách, bạn có thể chạy tập lệnh Trình kiểm tra cài đặt PHP. Bạn chỉ cần sao chép và dán nội dung của tệp đó vào một tệp mới trong thư mục có thể truy cập trên web trên máy chủ của bạn rồi chuyển đến tệp đó từ trình duyệt. Nếu bạn thấy đầu ra tương tự như bên dưới, thì tức là mọi thứ đã được định cấu hình đúng cách và bạn đã sẵn sàng sử dụng Thư viện ứng dụng PHP:

Ảnh chụp màn hình đầu ra của trình kiểm tra cài đặt php

Nếu bạn thấy lỗi (như trong ảnh chụp màn hình bên dưới), hãy đảm bảo bạn làm theo hướng dẫn. Bạn có thể thiếu tiện ích hoặc đường dẫn của bạn có thể vẫn được đặt không chính xác. Hãy nhớ rằng bạn có thể phải khởi động lại máy chủ để các thay đổi có hiệu lực. Điều này chỉ áp dụng nếu bạn thực sự đang sửa đổi tệp php.ini. Ảnh chụp màn hình bên dưới cho thấy include_path được đặt thành /path/to/nowhere:

Ảnh chụp màn hình đầu ra của trình kiểm tra cài đặt php

Lưu ý: Xin lưu ý rằng trình kiểm tra Cài đặt PHP liên tiếp kiểm tra những điều sau: (1) là tiện ích PHP bắt buộc được cài đặt, (2) điểm include_path có dẫn đến thư mục của Thư viện ứng dụng PHP hay không, (3) có thể thực hiện kết nối SSL và cuối cùng có thể kết nối với YouTube Data API không. Nếu một kiểm thử cụ thể bị lỗi, các kiểm thử còn lại sẽ không chạy.

Thư viện ứng dụng hiện đã được cài đặt. Đã đến lúc thử chạy các mẫu.

Chạy mẫu

Ở thư mục gốc của thư mục Zend/Gdata là một thư mục minh hoạ – các mẫu để giúp bạn bắt đầu. Một số mẫu trong số này được thiết kế để chạy từ dòng lệnh như demos/Zend/Gdata/Blogger.phpdemos/Zend/Gdata/Spreadsheet-ClientLogin.php. Bạn có thể thực thi các mẫu đó với php /path/to/example. Các mẫu còn lại có thể chạy được trên cả dòng lệnh và trình duyệt web. Nếu muốn xem chúng trong một trình duyệt, bạn nên đặt các tệp này vào bất kỳ thư mục nào mà bạn sẽ sử dụng để phân phát các trang web. Những mẫu này sẽ đưa ra ý tưởng cơ bản về cách viết và chạy ứng dụng Dữ liệu của Google, nhưng khi bạn sẵn sàng tìm hiểu thêm, bạn có thể dùng các tài nguyên khác dành cho lập trình viên tò mò.

Lưu ý: Nếu bạn muốn xem bản minh hoạ trực tuyến dựa trên nền tảng web, vui lòng truy cập vào googlecodesamples.com và tìm các ứng dụng PHP.

Tìm hiểu thêm về nơi

Nơi tốt nhất để tìm kiếm thông tin về lớp là một phần của thư viện khách hàng là hướng dẫn tham chiếu API trên trang web Zend Framework. Đảm bảo chọn gói Zend_Gdata từ trình đơn thả xuống.

Tại thời điểm này, bạn đã sẵn sàng để bắt đầu lập trình. Vì vậy, hãy tiếp tục viết một số ứng dụng tuyệt vời. Chúng tôi rất mong được xem kết quả của bạn!

Bạn có thể tìm thấy hướng dẫn dành cho nhà phát triển PHP cho các dịch vụ sau:

Vì Thư viện ứng dụng PHP là một dự án nguồn mở, nên chúng tôi liên tục thêm hỗ trợ cho các API khác. Mỗi dịch vụ đều có nhóm hỗ trợ riêng, vui lòng xem mục Câu hỏi thường gặp để biết danh sách các nhóm hỗ trợ hiện có.

Nếu cần trợ giúp khắc phục sự cố về lệnh gọi API, thì bạn có thể xem các bài viết về cách gỡ lỗi yêu cầu API bằng công cụ thu thập lưu lượng truy cập mạngsử dụng máy chủ proxy với API Dữ liệu của Google. Ngoài ra, cũng có một số bài viết bên ngoài về cách cài đặt XAMPP trên Linuxcài đặt XAMPP trên Windows. Ngoài tất cả những bài viết này, hãy nhớ xem các bài đăng về Thư viện ứng dụng PHP trên blog về Mẹo dữ liệu API của Google.

Phụ lục A: Chỉnh sửa đường dẫn PHP trong tệp cấu hình php.ini

Đường dẫn PHP là biến chứa danh sách các vị trí mà PHP tìm kiếm khi tìm kiếm thư viện bổ sung trong khi tải. Để PHP có thể tải và truy cập các tệp Thư viện ứng dụng PHP Data dựa trên dữ liệu trên máy hoặc máy chủ của bạn, chúng cần được đặt vào một vị trí mà PHP biết. Hoặc vị trí của các tệp cần được thêm vào đường dẫn PHP của bạn. Xin lưu ý rằng các thay đổi đối với tệp php.ini thường yêu cầu bạn khởi động lại máy chủ. Bạn luôn có thể xác minh giá trị hiện tại của biến include_path bằng cách chuyển đến trang Thông tin PHP đã thảo luận trước đó. Tìm ô Tệp cấu hình đã tải trong bảng đầu tiên và tìm đường dẫn trong cột ở bên phải.

Lưu ý: Nếu thấy đang sử dụng php từ dòng lệnh, bạn có thể phải sửa đổi một biến đường dẫn bổ sung. Đảm bảo bạn đã xem xét Phụ lục B: Sử dụng PHP từ dòng lệnh.

Sau khi bạn tìm thấy tệp php.ini, hãy làm theo các bước sau để thêm vào đường dẫn.

  1. Mở tệp php.ini trong trình chỉnh sửa văn bản yêu thích của bạn.
  2. Tìm dòng tham chiếu đến đường dẫn PHP, dòng này phải bắt đầu bằng include_path.
  3. Thêm đường dẫn mà bạn đã lưu trữ Khung Zend vào danh sách các vị trí đã có sẵn, tạo trước đường dẫn mới bằng dấu phân tách được chỉ định cho hệ điều hành của bạn (: trên hệ thống giống Unix, ; trên Windows). Một đường dẫn chính xác trên hệ thống giống Unix sẽ có dạng như sau:
    /path1:/path2:/usr/local/lib/php/library
    Trên Windows, đường dẫn sẽ có dạng như sau:
    \path1;\path2;\php\library
  4. Lưu và đóng tệp.

Lưu ý: Trên Mac OS X, Finder không cho phép truy cập vào các tệp ở các vị trí hệ thống, chẳng hạn như thư mục /etc. Do đó, cách dễ nhất là chỉnh sửa quảng cáo sử dụng trình chỉnh sửa dòng lệnh, chẳng hạn như vi hoặc pico. Để thực hiện việc này, hãy sử dụng một lệnh như: pico /path/to/php.ini.

Phụ lục B: Sử dụng PHP từ dòng lệnh

Kể từ phiên bản PHP 5, có một tiện ích dòng lệnh có sẵn trong PHP được gọi là CLI cho "trình phiên dịch dòng lệnh". Nhờ sử dụng tiện ích này, các tập lệnh php được chạy từ dòng lệnh. Các tình huống mà trong đó có thể hữu ích nếu bạn đang chạy PHP cục bộ trên máy của mình và đang tìm cách kiểm tra nhanh một số tập lệnh. Tất nhiên, trên máy chủ của bạn, việc này sẽ yêu cầu quyền truy cập môi trường shell. Một điều quan trọng cần lưu ý là PHP thường sử dụng hai tệp php.ini riêng biệt, một tệp chứa các tùy chọn cấu hình cho PHP chạy trên máy chủ của bạn, và một tệp khác dành cho các cấu hình mà PHP sử dụng khi chạy từ dòng lệnh. Nếu muốn chạy các ứng dụng minh hoạ dòng lệnh từ thư viện ứng dụng, bạn cũng cần sửa đổi tệp php.ini của dòng lệnh.

Để xác định vị trí của lệnh, hãy nhập các lệnh sau trên hệ thống giống Unix (Mac OS X, Linux và các hệ thống khác):

php -i | grep php.ini

Lệnh đó sẽ dẫn đến thông tin sau được hiển thị trong thiết bị đầu cuối của bạn:

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

Lưu ý: Dĩ nhiên vị trí đường dẫn thực tế (/etc/php...) có thể khác nhau trên hệ thống của bạn.

Phụ lục C: Gợi ý và giải pháp

Phần này nêu ngắn gọn một số vấn đề mà nhà phát triển đã phát hiện ra khi làm việc với PHP và các giải pháp thích hợp.

Vấn đề với tiện ích dom-xml trong XAMPP

Thư viện ứng dụng PHP sử dụng các lớp DOMDocument để chuyển đổi các yêu cầu và phản hồi XML thành đối tượng PHP. Tiện ích dom-xml có thể gây ra sự cố trong quá trình xử lý XML và dẫn đến các lượt chuyển đổi không chính xác. Một số nhà phát triển của chúng tôi nhận thấy rằng khi sử dụng XAMPP, hàm khởi tạo DOMDocument sẽ bị ghi đè bằng lệnh gọi hàm cũ hơn, như được giải thích trên trang web PHP. Để khắc phục vấn đề này, hãy đảm bảo rằng hoạt động xử lý XML không bị ghi đè trong tệp php.ini. Hãy nhớ xoá các tệp tham chiếu đến php_domxml.dll khỏi tệp cấu hình của bạn.

Yêu cầu đã hết thời gian chờ khi sử dụng thư viện ứng dụng

Nếu bạn đang sử dụng thư viện ứng dụng để thực hiện các yêu cầu khá lớn, chẳng hạn như tải video lên API Dữ liệu YouTube, thì bạn có thể phải thay đổi thông số timeout trong lớp Zend_Http_Client. Bạn có thể thực hiện việc này dễ dàng bằng cách truyền tham số $config trong quá trình tạo bản sao, việc này sẽ đặt giá trị timeout thành một giá trị khác ngoài giá trị mặc định 10 giây:

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

Một số nhà cung cấp dịch vụ lưu trữ không cho phép tạo kết nối https từ máy chủ của họ

Chúng tôi được biết một số nhà cung cấp dịch vụ lưu trữ không cho phép bạn tạo kết nối https từ máy chủ mặc định của họ. Nếu nhận được thông báo lỗi tương tự như dưới đây, thì bạn có thể cần kết nối https thông qua một proxy bảo mật:

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

Nhà cung cấp dịch vụ lưu trữ của bạn phải cho biết thông tin về địa chỉ thực tế của máy chủ proxy để sử dụng. Đoạn mã dưới đây minh họa cách sử dụng cấu hình proxy tuỳ chỉnh với Thư viện ứng dụng 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");

}

Nhật ký sửa đổi

Ngày 1 tháng 10 năm 2008

Do Jochen Hartmann cập nhật. Bản cập nhật này có các thay đổi sau:

  • Làm cho cấu hình PHP cho máy chủ web rõ ràng hơn bằng cách di chuyển các phần tham chiếu đến PHP dòng lệnh vào phụ lục.
  • Thêm ghi chú về nhiều tệp cấu hình php.ini.
  • Thêm các phần hướng dẫn cách linh động để đặt include_path.
  • Đã thêm mục vào tập lệnh trình kiểm tra cài đặt.
  • Đã thêm đường liên kết đến các mẫu trực tuyến.
  • Thêm đường liên kết cho XAMPP và MAMP.
  • Thêm phụ lục "Gợi ý và giải pháp".