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


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


這樣就OK了。
通過代碼添加活動并用短消息、郵件提醒
首先要按這篇教學文章的指導,安裝類庫,然后在項目中引入相關的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)建日歷服務對象
CalendarService service = new CalendarService("CalendarTestApp");
//設置用戶名密碼
service.setUserCredentials(userName, passWord);
//查詢找到賬戶中的名為“測試”的日歷
var query = new CalendarQuery(calendarURI);
CalendarEntry c = null;
foreach (CalendarEntry f in service.Query(query).Entries)
{
if (f.Title.Text == "測試") c = f;
}
//構(gòu)建新的活動
var q = new EventEntry("測試活動標題", "測試活動說明"n測試"n測試", "北京市朝陽區(qū)中央電視臺總部大樓大褲衩左褲管下");
q.Times.Add(new When(DateTime.Now.AddMinutes(8), DateTime.Now.AddDays(3)));
//設置提前提醒時間及方式
q.Reminder = new Reminder { Minutes = 7, Method = Reminder.ReminderMethod.all };
//向日歷添加此活動
service.Insert(new Uri(c.Content.AbsoluteUri), q);
執(zhí)行此段代碼,即可向一個名為“測試”的日歷中,添加一個帶有全部提醒功能的活動,你將會在1分鐘后收到短消息、Email提醒。
除此之外,我還簡單封裝了一個輔助類,以簡化整體操作流程,其發(fā)送過程是這樣的:


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


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