免費(fèi)的午餐——編程利用Google日歷API發(fā)短信、Email
此外Google還公開了其API,使得我們可以通過各種語(yǔ)言編程訪問。
面向.Net的API文檔:http://code.google.com/apis/calendar/docs/2.0/developers_guide_dotnet.html
開源類庫(kù):http://code.google.com/p/google-gdata/
下面我們就要利用此類庫(kù),及Google日歷的免費(fèi)短信、Email提醒功能,實(shí)現(xiàn)程序控制提醒。
準(zhǔn)備工作
首先你得有一個(gè)Google帳號(hào),并開啟了日歷功能,然后在設(shè)置中配置好手機(jī)短信功能:


然后配置你要使用的日歷,設(shè)置默認(rèn)支持的通知方式(一個(gè)日歷帳戶下,可以創(chuàng)建或?qū)攵鄠€(gè)日歷,每個(gè)日歷的提醒策略都需要單獨(dú)配置):


這樣就OK了。
通過代碼添加活動(dòng)并用短消息、郵件提醒
首先要按這篇教學(xué)文章的指導(dǎo),安裝類庫(kù),然后在項(xiàng)目中引入相關(guān)的DLL:
Google.GData.AccessControl.dll
Google.GData.Extensions.dll
Google.GData.Client.dll
Google.GData.Calendar.dll
然后編寫代碼:
string calendarURI = "http://www.google.com/calendar/feeds/default/allcalendars/full";
string userName = "abcdef@gmail.com";
string passWord = "123321";
//創(chuàng)建日歷服務(wù)對(duì)象
CalendarService service = new CalendarService("CalendarTestApp");
//設(shè)置用戶名密碼
service.setUserCredentials(userName, passWord);
//查詢找到賬戶中的名為“測(cè)試”的日歷
var query = new CalendarQuery(calendarURI);
CalendarEntry c = null;
foreach (CalendarEntry f in service.Query(query).Entries)
{
if (f.Title.Text == "測(cè)試") c = f;
}
//構(gòu)建新的活動(dòng)
var q = new EventEntry("測(cè)試活動(dòng)標(biāo)題", "測(cè)試活動(dòng)說明"n測(cè)試"n測(cè)試", "北京市朝陽(yáng)區(qū)中央電視臺(tái)總部大樓大褲衩左褲管下");
q.Times.Add(new When(DateTime.Now.AddMinutes(8), DateTime.Now.AddDays(3)));
//設(shè)置提前提醒時(shí)間及方式
q.Reminder = new Reminder { Minutes = 7, Method = Reminder.ReminderMethod.all };
//向日歷添加此活動(dòng)
service.Insert(new Uri(c.Content.AbsoluteUri), q);
執(zhí)行此段代碼,即可向一個(gè)名為“測(cè)試”的日歷中,添加一個(gè)帶有全部提醒功能的活動(dòng),你將會(huì)在1分鐘后收到短消息、Email提醒。
除此之外,我還簡(jiǎn)單封裝了一個(gè)輔助類,以簡(jiǎn)化整體操作流程,其發(fā)送過程是這樣的:


是的,我又使用了神圣的中文來編寫代碼,我將在文章末尾處提供其源代碼及DLL下載,類非常簡(jiǎn)單,如果你不喜歡中文可以自行修改一下命名。
注意,那個(gè)1.2分鐘的提前提醒時(shí)間,提交后還是會(huì)被認(rèn)為是1分鐘,因?yàn)檫@個(gè)參數(shù)不支持分鐘以下的單位。
創(chuàng)建的活動(dòng)及其發(fā)送通知的效果
執(zhí)行后查看日歷,活動(dòng)就被添加進(jìn)來了:
1分鐘過后,來看一下接收到的提醒吧,這是短信提醒:
短信提醒中只包含標(biāo)題和地點(diǎn)兩個(gè)信息屬性內(nèi)容,沒有說明部分。
這是電子郵件提醒:


想想這能干些什么?
新郵件短信通知:有些專業(yè)郵箱有新郵件短信提醒功能,那么我們只要通過程序定期檢查郵箱,然后將新郵件信息用此方法提交,就可以實(shí)現(xiàn)免費(fèi)的短信提醒功能啦,嘿嘿。(注意設(shè)置提醒的時(shí)候只設(shè)短信提醒,別把郵件提醒也弄上了,那Google就被你弄進(jìn)死循環(huán)了~)
天氣預(yù)報(bào)通知:不怕氣象局見云改口,隨時(shí)關(guān)注實(shí)時(shí)天氣動(dòng)向,比每天一次的固定天氣預(yù)報(bào)短信服務(wù)要好。
網(wǎng) 站重要狀況通知:網(wǎng)站管理員都希望網(wǎng)站出現(xiàn)重要事件或異常時(shí)能收到郵件通知,而現(xiàn)在還能追加一個(gè)短信通知,這樣就可以近乎實(shí)時(shí)了解自己網(wǎng)站的狀況啦。不僅 如此,Google的日歷還支持分享,假如有多個(gè)管理員的話,就可以通過分享功能共享這一個(gè)服務(wù)器狀況日歷,一有突發(fā)事件,所有管理員都將收到短信和郵件 通知!簡(jiǎn)直就是太棒了。(別被DDOS攻擊的時(shí)候把移動(dòng)服務(wù)器也發(fā)爆了~Google短信賬戶赤字~)
RSS更新通知:讓RSS閱讀器追加上這個(gè)功能一定會(huì)備受好評(píng)哦。
計(jì)算機(jī)操作監(jiān)控通知:不在辦公室時(shí)有沒有人偷偷開我電腦?弄個(gè)自動(dòng)運(yùn)行的程序在開機(jī)時(shí)發(fā)出通知就好,可以順道把他打開什么程序、讀了什么文件也都給記下來,呵呵。
行情走勢(shì)變動(dòng)通知:可以通過程序監(jiān)測(cè)某些易波動(dòng)的商品報(bào)價(jià)信息,在變化時(shí)發(fā)出通知,股票、外匯、黃金什么的也適用。“Wroning!胡蘿卜大跌!油麥菜漲停。”
團(tuán)隊(duì)消息通知:由軟件輸入并發(fā)送消息,繼而通過日歷共享功能群發(fā)短信給團(tuán)隊(duì),省錢的小招:)
游戲外掛通知:“你被一群牛頭人踩死了!”“GM正在注視著你!”“與服務(wù)器斷開連接!”
Twitter發(fā)言通知:用程序關(guān)注你的目標(biāo)MM的Twitter,她一說話你就收到短信,然后第一時(shí)間回復(fù)她吧,那感情持續(xù)++。(使用前請(qǐng)確定目標(biāo)不會(huì)在激動(dòng)時(shí)刷版狂噴)
我想到的就這么多了,應(yīng)該還能發(fā)掘出很多不錯(cuò)的點(diǎn)子的,大家一起來想吧。
但是千萬別濫用Google好心提供的這個(gè)服務(wù),你被封了不要緊,就怕會(huì)影響別人的正常使用。
下載源代碼:
《Android開發(fā)完全講義(第2版)》(本書版權(quán)已輸出到臺(tái)灣)
http://product.dangdang.com/product.aspx?product_id=22741502
《Android高薪之路:Android程序員面試寶典 》http://book.360buy.com/10970314.html
新浪微博:http://t.sina.com.cn/androidguy 昵稱:李寧_Lining
posted on 2009-09-02 10:31 銀河使者 閱讀(1793) 評(píng)論(0) 編輯 收藏 所屬分類: Google