About Me

我的相片
台北市, Taiwan
我是方選,
方白科技(finebind tech.)共同創辦人,
臺大資管所畢,
希望能幫助更多的人!

FB: http://fb.com/function1122
LINE: http://bit.ly/1foeZft (手機開啟點擊網址自動加入)

最新15則讀者回應

最新文章

FUNction's 上課筆記

Label Cloud

Blog Archive

FeedBurner

追蹤者

[教學] 在PHP 中使用Google Calendar API - Part 1 環境建立

FUNction 於 2008年7月14日 下午3:11 發表
大綱:建立Google Calendar API 的PHP 環境。
前言
如果你是一個PHP 的開發者,想玩玩Google Calendar API ,想必這篇文章令你興奮。接下來的範例,包含使用PHP 對Google Calendar 新增、查詢、刪除。而且每一篇都會附加當篇程式碼的.zip檔案,希望能對所有PHP 的開發者有幫助。


範例
先讓你過過乾癮,這個小小的網站就是透過Google Calendar API 將資訊存在Google Calendar 上,也是接下來幾天的Lab 要做的,你可以試著新增、刪除事件,然後每個事件會在發生前5分鐘透過Google 傳簡訊通知我: http://functionlab.org/GClab/ 。當你新增事件之後,可以到Google 的畫面去檢視被寫入的事件:FUNction's Lab 公開日曆

讓我們開始吧
如果你不知道什麼是Google Calendar ,或是日曆裡還沒有建立事件,請參考Google Calendar (行事曆/日曆) 使用教學,因為接下來的程式會需要讀取你自己的日曆,請務必先手動建立幾筆事件。還有你要有心理準備,今天幾乎碰不到程式,今天的目標是把環境建立起來。

使用Zend Gdata
假設你的機器已經可以執行PHP 了,而且PHP 的版本在5.0.4 以上。我們必須先取得Zend 公司的Gdata 函式庫,請造訪http://framework.zend.com/download/webservices 下載最新版本(在本篇末也提供包好的函式庫+範例檔案,所以你也可以直接從我這邊下載)。下載之後,解開壓縮會是一個資料夾,其實只有library 資料夾需要用到而已。


建立檔案架構
在你可以執行PHP 的網站根目錄(可能名為htdocs, www, wwwroot...)開一個資料夾,就把它取名為「GClab」吧,代表Google Calendar 的練習。然後接著把剛剛下載來的library 資料夾複製到GClab 之下,這樣檔案架構就搞定了!

建立config.inc.php 檔案
如果要讀取你的Google 日曆,會需要你的Google 帳號、密碼。如果你需要指定讀取哪一本日曆,還會需要他的ID。

我們在GClab 資料夾下建立名為config.inc.php 的檔案,內容如下:
<?php
//以下欄位請依照自己需要調整
$googleAccount = 'myname@gmail.com'; //Google 帳號
$googlePassword = 'mypassword'; //Google 密碼
$calendarID = 'myname@gmail.com'; //Google Calendar 的 ID
?>

這邊要注意的是$calendarID,如果你只有一本日曆,那Calendar ID 會跟你帳號一樣,如果建立了第二本日曆,可以在Google Calendar 的左下角「管理日曆」,點選第二本的日曆名稱,拉到最下面看到(如左圖)。


接著,我們要讓系統能載入Gdata 函式庫,所以我們要在剛剛的檔案中加入一些include path 的設定:
//這裡透過程式碼動態修改php.ini 的include_path 值
//告訴系統Zend Gdata Library 的位置
$slash = (strstr(ini_get('extension_dir'), '/'))?"/":"\\"; //Windows 與Unix 的斜線方向不同,需要考慮到
$includePath = dirname(__FILE__).$slash.'library';
ini_set('include_path', $includePath); //動態設定php.ini

//這邊是在設定程式把Zend Gdata Library 載入程式碼中
require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');


最後,我們在瀏覽器輸入http://localhost/GClab/config.inc.php 。只要不出現錯誤訊息,就代表今天的練習成功啦!順便很興奮的告訴你,我們已經完成一半了。

範例程式下載:GClab-part-1.zip

下一篇[教學] 在PHP 中使用Google Calendar API - Part 2 取得事件列表 Tags: , , ,

讀者回應 ( 7 意見 )

版主你好!
請問:
index.php 怎麼在web site上面是空白的?

因為這是part 1 阿XD

大大:
有錯誤耶
不知啥原因,錯誤訊息如下:
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in d:\appserv\www\gclab\library\Zend\Loader.php on line 52

= =……欺骗感情……竟然分part 1 part2!!!!!

http://framework.zend.com/download/webservices 不能連結。
請問Zend 公司的Gdata 函式庫是哪一個版本?
目前另找這個頁面:
http://framework.zend.com/downloads/latest

請問有針對新版本ZF2的嗎?

請問一下,這http://framework.zend.com/downloads/latest下載,Zend_Gdata Version 1.12.18,怎麼用,看了超多文章都是搞不定,麻煩大大幫忙

張貼留言

如果沒有帳戶,建議使用「名稱/網址」留言喔^^