Google日历是相当优秀的日程管理工具,可以方便的组织、分享各类日程,Google还提供了贴心而免费的手机短信、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提醒功能,实现程序控制提醒。

准备工作

首先你得有一个Google帐号,并开启了日历功能,然后在设置中配置好手机短信功能:

然后配置你要使用的日历,设置默认支持的通知方式(一个日历帐户下,可以创建或导入多个日历,每个日历的提醒策略都需要单独配置):

这样就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";

//创建日历服务对象

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;

}

//构建新的活动

var q = new EventEntry("测试活动标题", "测试活动说明/n测试/n测试", "北京市朝阳区中央电视台总部大楼大裤衩左裤管下");

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

执行此段代码,即可向一个名为“测试”的日历中,添加一个带有全部提醒功能的活动,你将会在1分钟后收到短消息、Email提醒。

除此之外,我还简单封装了一个辅助类,以简化整体操作流程,其发送过程是这样的:

是的,我又使用了神圣的中文来编写代码,我将在文章末尾处提供其源代码及DLL下载,类非常简单,如果你不喜欢中文可以自行修改一下命名。

注意,那个1.2分钟的提前提醒时间,提交后还是会被认为是1分钟,因为这个参数不支持分钟以下的单位。

创建的活动及其发送通知的效果

执行后查看日历,活动就被添加进来了:

1分钟过后,来看一下接收到的提醒吧,这是短信提醒:

短信提醒中只包含标题和地点两个信息属性内容,没有说明部分。

这是电子邮件提醒:

想想这能干些什么?

新邮件短信通知:有些专业邮箱有新邮件短信提醒功能,那么我们只要通过程序定期检查邮箱,然后将新邮件信息用此方法提交,就可以实现免费的短信提醒功能啦,嘿嘿。(注意设置提醒的时候只设短信提醒,别把邮件提醒也弄上了,那Google就被你弄进死循环了~)

天气预报通知:不怕气象局见云改口,随时关注实时天气动向,比每天一次的固定天气预报短信服务要好。

网站重要状况通知:网站管理员都希望网站出现重要事件或异常时能收到邮件通知,而现在还能追加一个短信通知,这样就可以近乎实时了解自己网站的状况啦。不仅如此,Google的日历还支持分享,假如有多个管理员的话,就可以通过分享功能共享这一个服务器状况日历,一有突发事件,所有管理员都将收到短信和邮件通知!简直就是太棒了。(别被DDOS攻击的时候把移动服务器也发爆了~Google短信账户赤字~)

RSS更新通知:让RSS阅读器追加上这个功能一定会备受好评哦。

计算机操作监控通知:不在办公室时有没有人偷偷开我电脑?弄个自动运行的程序在开机时发出通知就好,可以顺道把他打开什么程序、读了什么文件也都给记下来,呵呵。

行情走势变动通知:可以通过程序监测某些易波动的商品报价信息,在变化时发出通知,股票、外汇、黄金什么的也适用。“Wroning!胡萝卜大跌!油麦菜涨停。”

团队消息通知:由软件输入并发送消息,继而通过日历共享功能群发短信给团队,省钱的小招:)

游戏外挂通知:“你被一群牛头人踩死了!”“GM正在注视着你!”“与服务器断开连接!”

Twitter发言通知:用程序关注你的目标MM的Twitter,她一说话你就收到短信,然后第一时间回复她吧,那感情持续++。(使用前请确定目标不会在激动时刷版狂喷)

我想到的就这么多了,应该还能发掘出很多不错的点子的,大家一起来想吧。

但是千万别滥用Google好心提供的这个服务,你被封了不要紧,就怕会影响别人的正常使用。

下载源代码:

下载本文的XPS版本:

源代码分流下载地址:http://www.uushare.com/user/icesee/file/1822466

编程利用Google日历API发短信、Email相关推荐

  1. 【zz】免费的午餐——编程利用Google日历API发短信、Email

    免费的午餐--编程利用Google日历API发短信.Email Google日历是相当优秀的日程管理工具,可以方便的组织.分享各类日程,Google还提供了贴心而免费的手机短信.Email提示功能,真 ...

  2. 免费的午餐——编程利用Google日历API发短信、Email

    Google日历是相当优秀的日程管理工具,可以方便的组织.分享各类日程,Google还提供了贴心而免费的手机短信.Email提示功能,真是非常的赞. 此外Google还公开了其API,使得我们可以通过 ...

  3. 利用阿里大于接口发短信(Delphi版)

    阿里大于是阿里通信旗下产品,融合了三大运营商的通信能力,提供包括短信.语音.流量直充.私密专线.店铺手机号等个性化服务.每条四分五,价钱还算公道,经老农测试,响应速度非常快,基本上是秒到.官方文档提供 ...

  4. 利用飞信给自己发短信的shell脚本

    利用飞信给自己发短信的shell脚本翻译自一个python脚本因为openwrt要装python太大了.所以用了两天非工作时间 翻译成了 shell脚本 .测试可用. http://dl.dbank. ...

  5. 利用飞信给自己发短信的shell脚本(2012-12-31更新,处理验证码,目前可用)

    利用飞信给自己发短信的shell脚本翻译自一个python脚本因为openwrt要装python太大了.所以用了两天非工作时间 翻译成了 shell脚本 .测试可用. 2012-12-31 更新:由于 ...

  6. python可以实现什么黑科技_实用黑科技!利用python给手机发短信

    之前告诉大家使用python可以应用于很多场景,除了大家所知道的,今天给大家带来一个特别好玩的事情,就是能用python去发短信,赶紧看下文吧~ 准备工作内容: SDK AppID.App Key.应 ...

  7. Qt下面利用4G 模块SIM7600发短信调试总结

    项目需要在基于Qt的界面下发送短信,选用4G模块SIM7600通过AT指令发送短信,和小伙伴调了一天多,终于可以了,下面简单总结一下调试过程中遇到的问题和学习到的经验,供大家参考,少走弯路. 1.在网 ...

  8. 利用飞信接口免费发短信

    本文飞信接口以学习为目的,不涉及任何商业利益.任何企业和个人与此接口有关的商业行为,请与移动公司联系 首先需要这个JAR包:fetion.jar 其次: import java.io.IOExcept ...

  9. 利用飞信自动发短信脚本

    利用飞信给自己发短信的shell脚本 利用飞信给自己发短信的shell脚本翻译自一个python脚本因为openwrt要装python太大了.所以用了两天非工作时间 翻译成了 shell脚本 .测试可 ...

最新文章

  1. AlphaCode能替代人类程序员吗?网友:被替代也挺好,这样就可以少写代码多开会了...
  2. 如何编写无法维护的代码_如何写出让同事无法维护的代码?
  3. 40个很棒的由html5开发的网络游戏案例
  4. 探讨JS合并两个数组的方法
  5. php mysql刷新表格_PHP和AJAMYSQL数据库刷新表格
  6. 软件测试—软件测试基础知识—测试用例设计的方法之场景法、正交试验法和错误推断法
  7. 数据结构简答题和论述题
  8. 对于C# 中事件的参数(object sender, EventArgs e)
  9. Detecting Near-Duplicates for Web Crawling - simhash与重复信息识别
  10. linux--用户和组管理
  11. Linux之——udp端口测试连接
  12. 【膜拜原文作者】深入浅出的讲解傅里叶变换
  13. 使用 rem 布局的优缺点?
  14. 南大小百合 计算机,是我从南大小百合里搜集的。已经编辑过了
  15. PM、RD、QA、OP英文缩写是什么意思
  16. Widget-苹果.谷歌和诺基亚着迷的网络新思维
  17. B站JavaScript从入门到精通智能社Blue石川老师视频部分代码_幻灯片
  18. proteus各个版本下载
  19. Kubernetes 国外镜像的网络问题
  20. strust2-学习(一)框架搭建和简单示例

热门文章

  1. Oracle 查询工具 在WIN7 64位下安装PLSQL
  2. 你不得不知的几个互联网ID生成器方案
  3. protues仿真技巧——元件制作
  4. 咸菜,粥,咸鸭蛋及其他_拔剑-浆糊的传说_新浪博客
  5. Unity之Shader Pass 通道显示贴图的几种方法- 六
  6. Android导入OpenCV库
  7. 向VISUAL SVN SERVER上传文件时报错
  8. 药物设计的深度学习(Deep Learning for Drug Design)
  9. RK3399平台开发系列讲解(网络篇)7.38、网卡驱动程序数据结构
  10. 毕业设计 基于单片机的示波器设计与实现(源码+硬件+论文)