通过 C# 代码操作 Google 日历
本文主题
借助 Google .NET APIs Client Library,通过 C# 代码在 Google 日历中创建会议邀请。
本文背景
最近,Google 发布了 .NET APIs Client Library,终于可以方便地通过 .NET/C# 代码调用 Google 的 API。
而我们正好有这个需求,所以小试了一下。需求是这样的:通过调用 Google Calendar 的 API,自动创建每周例会的 Google 日历活动,邀请并通知参会者,被邀请者可以修改该日历项。以前这个操作是人工在 Google 日历的 Web 页面上完成的。
准备工作
1. 下载并安装 Google Data API SDK,主要用于引用其中的三个程序集。该 SDK 中也包含 Google .NET APIs Client Library 的源代码,正是由于有了源代码,我们在使用中遇到的问题才得以快速解决。
2. 阅读参考文档与示例代码 Data API Developer's Guide: .NET,重点查看 Creating single-occurrence events(我们的任务就是创建一个日历项)。示例代码只是创建一个包含标题、内容、地点、时间的简历日历项,而我们的需求还包括:a) 邀请参会者(Participants);b) 通知参会者(Notifications);c) 被邀请者可以修改该日历项(GuestsCanModify)。
所遇问题
Google .NET APIs Client Library 没有实现 gCal:guestsCanModify 属性(设置这个属性可以让被邀请者修改日历项),后来我们参照 .NET APIs Client Library 的源代码自己实现了一个,代码如下:
- public class GuestsCanModify : EnumConstruct
{
public GuestsCanModify()
: base("guestsCanModify",
GDataParserNameTable.gCalPrefix,
GDataParserNameTable.NSGCal)
{
}
public GuestsCanModify(string value)
: base("guestsCanModify",
GDataParserNameTable.gCalPrefix,
GDataParserNameTable.NSGCal, value)
{
}
}
代码实现
在VS2010中新建一个项目,并添加三个引用:"Google.GData.Extensions.dll", "Google.GData.Calendar.dll", "Google.GData.Client.dll"。
创建会议邀请日历项的代码如下:
- public void CreateCalendarEvent()
{
CalendarService calendarService = new CalendarService("CNBlogsMeeting");
calendarService.setUserCredentials("Google登录用户名", "密码");
EventEntry entry = new EventEntry();
//日历标题与内容
entry.Title.Text = "博客园周会通知标题";
entry.Content.Content = "博客园周会通知内容";
//开始与结束时间,17:00~18:00
When eventTime = new When(DateTime.Now.Date.AddHours(),
DateTime.Now.Date.AddHours());
entry.Times.Add(eventTime);
//需要邀请的参会者
Who who = new Who();
who.Email = "contact@cnblogs.com";
who.Rel = "http://schemas.google.com/g/2005#event.attendee";
entry.Participants.Add(who);
//给被邀请者发送通知
entry.Notifications = true;
//被邀请者可以修改该日历项
entry.ExtensionElements.Add(new GuestsCanModify("true"));
Uri postUri = new Uri("ttps://www.google.com/calendar/feeds/default/private/full");
AtomEntry insertEntry = calendarService.Insert(postUri, entry);
Assert.NotNull(insertEntry);
}
代码下载
通过 C# 代码操作 Google 日历的更多相关文章
- 超级简单!80行代码实现Google日历(拖放、移动、AJAX)
行代码实现Google日历 Introduction 本实例介绍使用DayPilot Lite for ASP.NET MVC library 类来实现类google日历效果. 在线实例 天视图 星 ...
- 超简单!80行代码实现Google日历(拖放、移动、AJAX)
介绍 本实例介绍使用DayPilot Lite for ASP.NET MVC library 类来实现类google日历效果. 在线实例 天视图 星期视图 拖放调整 拖放移动 行代码来实现a ...
- Google日历添加农历、节日和天气插件(步骤)
Google日历添加农历.节日和天气插件(步骤) Google功能非常多,Google日历只是其中一个,而且支持Exchange账户(iPhone,WP7,诺基亚等)和Google账户登录(andro ...
- C#仿google日历asp.net简单三层版本
网上搜了很多xgcalendar的例子都是Php开发的,而且官方站上的asp.net/MVC版 在vs10 08 都报错. 所以自己重新用三层写了一下希望对大家有帮助 废话不多说了 先看看它都有些什么 ...
- JavaScript后台代码操作HTML TABLE的方法
原文:JavaScript后台代码操作HTML TABLE的方法 var rowNum = 0,fileNum = 0; //行号与列号 var oNewRow; //定义插入行对象 var oNew ...
- 不使用spring的情况下用java原生代码操作mongodb数据库的两种方式
由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常. 主要原因实际上是和mongodb本身无关的,因为他们改的是配置 ...
- Java代码操作HDFS测试类
1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...
- Google 日历短信通知没有了
关于 Google 日历短信通知的重要通知 从 2015 年 6 月 27 日起,Google 日历将不再发送短信通知.短信通知是我们在智能手机问世之前推出的功能.如今,智能手机和通知随处可见,即使处 ...
- 使用java代码操作Redis
1导入pom.xml依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis ...
随机推荐
- POJ 1631 Bridging signals(LIS 二分法 高速方法)
Language: Default Bridging signals Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 1076 ...
- 云盘+Git GUI云盘文件版本控制
以下介绍操作细节 1.先下载Git GUI 下载地址:http://msysgit.github.io/ 再下载百度云网盘 下载地址:http://pan.baidu.com 接下来就是安装这两个软件 ...
- 了解大数据的技术生态系统 Hadoop,hive,spark(转载)
首先给出原文链接: 原文链接 大数据本身是一个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你能够把它比作一个厨房所以须要的各种工具. 锅碗瓢盆,各 ...
- 采用Flume实时采集和处理数据
它已成功安装Flume在...的基础上.本文将总结使用Flume实时采集和处理数据,详细过程,如下面: 第一步,在$FLUME_HOME/conf文件夹下,编写Flume的配置文件,命名为flume_ ...
- windows平台搭建lighttpd+php+sqlite
(一)php 1. 下载及安装 http://www.appservnetwork.com/ 从上面的网址下载appserv-win32-2.5.10并安装,在安装的时候,仅仅选择安装php. 由于, ...
- L轻松学习inux教程5 知识与学习bash
本系列文章由@超人爱因斯坦出品,转载请注明出处. 文章链接: http://hpw123.net/a/Linux/Linuxjichu/2014/1031/101. ...
- 第8章 装饰模式(Decorator Pattern)
原文 第8章 装饰模式(Decorator Pattern) 概述: 装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. ...
- 【笨木头Lua专栏】基础补充04:迭代器初探
今天学习的内容还蛮有意思的,让我兴奋了一下~ 笨木头花心贡献,哈?花心?不,是用心~ 转载请注明,原文地址: http://www.benmutou.com/archives/1714 文章来源:笨木 ...
- SEO要领:8文章主持技巧(两)
续篇:搜索引擎优化要领:8条辅助技巧(一) 四.检查你的robots.txt文件 与谷歌的蜘蛛通信的经常用法是使用robots.txt文件. 这是一个文本文件.同意你告诉搜索引擎,你的站点的网页上抓取 ...
- stl之map容器的原理及应用
容器的数据结构同样是采用红黑树进行管理,插入的元素健位不允许重复,所使用的节点元素的比较函数,只对元素的健值进行比较,元素的各项数据可通过健值检索出来.map容器是一种关联容器,实现了SortedAs ...