About Me

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

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

最新15則讀者回應

最新文章

FUNction's 上課筆記

Label Cloud

Blog Archive

FeedBurner

追蹤者

珍惜

FUNction 於 2008年8月26日 中午12:10 發表
我常常在想,地球上六十幾億的人,一輩子能認識幾個。像我們這種泛泛之輩,此生只能認識幾千人,也有將近六十億的人我們素未謀面,就算埋入黃土,也不曾見過他們。為什麼就認識這些人,一定有他的原因吧,我想,這就是緣分。也是因為這份緣,我們一定要好好珍惜我們所認識的人。

在認識的人裡面,有深愛的、有敬佩的、有侃侃而談的、有令人感動的、有話不投機的、有讓我傷心的還有讓我氣憤的,但不管怎麼樣,這些人就在這僅僅的幾千人裡面,我們都應該要珍惜相處的每一刻。如果沒有深愛的人,我們不懂什麼是付出;如果沒有讓我氣憤的人,我們的智慧不會成長...我想,「珍惜」是人與動物的一大差別吧。

無止盡的珍惜容易使人心灰意冷,不妨從珍惜別人的好開始。如果哪天收到一封來自遠方朋友的簡訊,內容也許只是「聖誕快樂」,這封簡訊也許一看就知道是群組訊息,但是這代表那朋友有想到你,這份感動就需要珍惜!如果哪天朋友找你抱怨有的沒的,你可能會想,他只有有事的時候才會找你,但其實他也可以不找你,他找你是因為他遇到這件事第一個想到你!

我們都不知道明天會怎樣,誰敢保證明天會如同預期!很多機會過了就沒有了,哪怕是一個小小的關心。也許我們心裡都埋藏著好多秘密,但對方真的有機會知道嗎?最簡單的珍惜就是把握現在,懂得珍惜的人就能時時幸福快樂!

這邊放一首我自己唱的「愛的太晚」,前幾個禮拜聽廣播聽到的,很有意義的一首歌...

呵,我今天才在學怎麼唱,現學現賣了XD (原唱:古巨基《我還是你的情歌王》)


希望大家都能珍惜當下喔,想他,就打給他吧!
繼續閱讀全文 珍惜

[教學] 在PHP 中使用Google Calendar API - END 刪除事件(含補充)

FUNction 於 2008年8月13日 晚上8:43 發表
大綱:透過API 將Google Calendar 上的事件刪除。並補充參考資料與經驗分享
前言
這是最後一篇了,其實刪除真的超簡單的,至於為什麼拖這麼久才出這篇,我只能說:「哀...」。補上我參考的資料以及一些經驗分享吧。

刪除一筆事件
透過事件ID當作參數傳入delete.php ,當刪除成功之後顯示被刪除的事件的title。

刪除事件
請建立delete.php 並加入下列程式碼:

<?php
include('config.inc.php');
$eventId = $_GET['id'];

$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // 提供Calendar 的服務名稱
$client = Zend_Gdata_ClientLogin::getHttpClient($googleAccount, $googlePassword, $service);
$gdataCal = new Zend_Gdata_Calendar($client);

//接下來這邊就是讀取某個事件的方法
$query = $gdataCal->newEventQuery();
$query->setUser($calendarID);
$query->setVisibility('private');
$query->setProjection('full');
$query->setEvent($eventId);
$eventEntry = $gdataCal->getCalendarEventEntry($query);
$title = $eventEntry->title->text;
$eventEntry->delete();
?>

我們透過getCalendarEventEntry取得某一個事件,之前講過可以用$eventEntry->title->text; 去取得事件的標題(這是等一下要顯示的)。然後這邊調用另一個方法delete(),來刪除事件$eventEntry->delete(); ,就是這麼簡單。

顯示已被刪除的事件標題
接著就更簡單了,剛剛已經把事件標題放入$title 變數了,請在上述程式碼?>之後加入以下html 語法:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>FUNction's Lab 讀取Google 行事曆 「<?=$title?>」已刪除</title>
</head>
<body>
[<a href="./">上一頁</a>]
<hr />
<h1><font color="red">事件「<?=$title?>」已刪除!</font></h1>
</body>
</html>

這樣今天的delete 就大功告成了,也是Google Calendar 開發的完結篇了。

經驗分享
接下來,我先講一些這陣子的使用心得與之前沒講到的補充。

title 字串的限制
我發現title 字串幾乎沒有限制。以長度來說,我有曾經建立長度為200 個UTF-8 中文字的事件標題,不會顯示錯誤,更神的事Google 一樣會傳簡訊通知。至於超過200 我沒有試過,如果有更大量的數據也請告訴我。至於格式方面,確定可以使用html 標籤。使用html 標籤後用Google Calendar 檢視事件或是簡訊通知Google 會自動忽略標籤,但用API 一樣可以把標籤讀出來。

簡訊提醒限制
使用簡訊提醒如果設定提醒時間大於60 分鐘會出現不知名的錯誤,在5-60 分鐘內不會有問題。此外,上一篇列出的方法是透過修改事件加入提醒,以下片段程式是直接在建立事件時新增提醒,以供參考:

function createEvent($title, $content, $where, $startTime)
{
global $calendarClient, $calendarId;

$endPart = explode("-", $startTime, 3);
$startTime = $endPart[0].'-'.$endPart[1].'-'.(add0($endPart[2]+1));
$endTime = $endPart[0].'-'.$endPart[1].'-'.(add0($endPart[2]+2));
$calendarURL = "http://www.google.com/calendar/feeds/".urlencode($calendarId)."/private/full";

$gc = new Zend_Gdata_Calendar($calendarClient);
$newEntry = $gc->newEventEntry();

$newEntry->title = $gc->newTitle(trim($title));
$newEntry->where = array($gc->newWhere($where));
$newEntry->content = $gc->newContent($content);
$newEntry->content->type = 'text/html';

$reminder = $gc->newReminder();
$reminder->setMinutes(60);
$reminder->setMethod('sms');

$when = $gc->newWhen();
$when->reminders = array($reminder);
$when->startTime = $startTime."+08:00";
$when->endTime = $endTime."+08:00";

$newEntry->when = array($when);

$createdEntry = $gc->insertEvent($newEntry, $calendarURL);
return basename($createdEntry->id->text);
}

這個function 用2008-08-13 的格式傳入一個開始日期$startTime,會自動建議一整天的事件。其中全域變數$calendarClient 就是這系列教學中的$client 變數,是與Google 的連結。喔,對了,裡面用了一個名為add0() 的function ,這是我自己寫的function ,目的是如果數字為1-9 自動在前面補0 ,不然送到google 會出錯。

透過ID 取得事件
我們知道讀取事件可以使用$query->setEvent($eventId); 取得事件,如果$eventId 值為空,Google 則會預設丟出最後被updated 的事件。

參考資料
我覺得最有用的文章首推Google Calendar API使用心得分享 這篇文章也有一些經驗分享,由淺入深,不論在開發初期還是開發後期都很有幫助。

接下來是Google 官方的文件API Developer's Guide: PHP 但是寫的還是讓人要消化一下才懂,不如直接去下載Zend 的函式庫,在Demo 資料夾中有一個名為calendar.php 的檔案,裡面包著新增、修改、刪除、查詢的function ,看著範例做會好很多。

最後,這裡雖然會用到Zend 但其實和Zend Framework 沒有那麼直接的關係,如果你使用其他的Framework 仍然可以呼叫Zend 的Gdata,這篇文章 可以解答你的疑惑。

結語
到了最後依依不捨的時間了,因為這個單原告一段落啦。這邊我要秀一個我免費接的case ,就是以Google Calendar 為主體的一個網站。這網站的概念是以事件為最基本的元素,使用者可以根據事件評論、建立標籤等等。但網站的核心還是放在Google 的資料庫中。另外,會元的照片是透過Picasa API 傳到Picasa 上,一方面可以減少網站流量,一方面可以便於陳列管理,甚至還可以調用Picasa 的Slideshow,當成會員輪播。網址: http://fjucte.oxyhost.com/index.html

最後,我們來聊聊Google Abuse。我們還可以把Google Calendar 做成自己專屬的留言版,這樣人家有留言還可以讓Google 通知你。或是Abuse 他的簡訊功能,做其他的通知功用...

範例程式下載:GClab.zip

上一篇[教學] 在PHP 中使用Google Calendar API - Part 4 新增事件(含提醒)
繼續閱讀全文 [教學] 在PHP 中使用Google Calendar API - END 刪除事件(含補充)

謝謝海苔姐姐的簽筆盒

FUNction 於 2008年8月6日 晚上10:57 發表


話說之前上班的時候,一直在跟海苔爭執誰的字比較好看。結果沒想到離職之後,我爸有個需求,要我找個字比較好看的朋友幫他寫幾個硬筆字,讓我妹妹模仿練字。因為之前爭執過,所以我第一個就想到海苔XD

跟他講這個要求,他回我的第一句是:「你不是自己覺得字很好看,為什麼不自己寫?」
我回答:「我已經寫過了Orz...」

結果零零總總的一些事件,跟海苔拿字的時候,他附加了一個簽筆盒,說要送我妹當作上小學的禮物。但是他手上拿著一個超大的Hello Kitty 的手機座,據說是買鉛筆盒抽到的頭獎(好心人總是有好報的^^)。呵呵,真的很謝謝他,因為我妹超喜歡那個鉛筆盒的。

每次都把他的肚子裝的圓嘟嘟的,超可愛!還會用鉛筆盒跟我揮手。雖然現在我妹眼睛還沒有矯正好,但我叫他脫眼鏡充當一下正妹,可惜還是露出門牙的洞洞。忘記叫他唱「下一個天亮」了,那樣應該更有感謝的誠意。

不過最後...我爸說那些字寫在太花俏的紙上了,要重寫,我不敢再要求你了。
繼續閱讀全文 謝謝海苔姐姐的簽筆盒

令人感動的明信片 x2

FUNction 晚上8:50 發表

我覺得我是個容易滿足的人,只要一點點的關心,都可以讓我開心很久...其實這已經是兩個禮拜以前的事了,但因為我最近在忙教育學程的事,Blog 一直沒有時間更新Orz

這篇我要感謝兩個人,兩個很重要的朋友─海苔姐&洹希。(兩篇放一起寫希望當事人不要介意)

先說洹希好了,話說之前他在狀態上打要去新加坡,在找玩伴,我看到了稍為關心一下(畢竟我怎麼可能去當玩伴嘛!),沒想到...他問了我家地址。其實在國二的時候,我就有在暑假被朋友被問過地址,過幾天收到一封從嘉義寄來的信,這是我第一次收到朋友寄給我的「旅遊當地信」,雖然在島內,但感覺還是蠻特別的XD,但是之後就都沒有收過了...

洹希問我地址時我還沒會過意,大概是太久沒收過「旅遊當地信」了吧。就像之前被朋友調查身分證字號、地址,結果沒想到朋友是拉保險的,在建立客戶資料Orz。不過洹希問,我也不疑有他,沒多問就給了。

過幾天,海苔姐打電話給我,問我地址。這次其實我有聯想起來,但是我因為蠻想收到信的,就裝一下傻吧XD。

過了一陣子,正好是我的情緒低潮期(7/15~7/?),加上每天無聊的補習,我很倦怠。忽然間,信箱有了一張卡片,從澎湖來的,是海苔耶,我感動得快哭了,居然有人在出去玩的時候還能想到我耶!我知道我平時為人自私又小氣,哀...反正很多缺點,沒朋友也見怪不怪了。

隔天,我又驚喜一次,信箱裡又多了一張明信片,而且是遠從新加坡來的!內容寫得很精采,繪聲繪影的描繪新加坡的景像,我很嚮往。朋友能帶給我的快樂真的莫過於此,雖然不能一起出去玩,但在開心的時候還能想起我,想跟我分享,我覺得這是很難得的,真的應該要好好珍惜 :-)

最後,兩個人都是天蠍的,天蠍果然是我的好朋友^^
繼續閱讀全文 令人感動的明信片 x2