通过 C# 代码操作 Google 日历

原文:通过 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(17),        DateTime.Now.Date.AddHours(18));    entry.Times.Add(eventTime);

//需要邀请的参会者    Who who = new Who();    who.Email = "[email protected]";    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);}

代码下载

GoogleCalendarDemo.rar

时间: 2024-12-25 00:25:01

通过 C# 代码操作 Google 日历的相关文章

制定网络推广计划。Google日历制定计划非常简单

去年的6月份的时候写了一篇“实用站长工具吐血推荐(上)”跟大家推荐了一些比较实用的站长工具.后面也一直在寻找更好的站长工具,再和大家分享下,也有发现很多不错的站长工具,但大部分都是要收费的,比较不划算. 最近发现一个站长工具,非常的强大,而且是免费使用的,可以说有了这个工具,做百度优化方便了很多.最开始知道这工具,是看到老乡郭吉军在微博推荐,去使用体验了下感觉挺不错.但这网站挺杯具的,不知道是不是因为一推就太受欢迎,这两天使用常发现提示系统维护,一直被黑客攻击,让我想起28推论坛才推出的时候,也

Google 日历短信通知没有了

关于 Google 日历短信通知的重要通知 从 2015 年 6 月 27 日起,Google 日历将不再发送短信通知.短信通知是我们在智能手机问世之前推出的功能.如今,智能手机和通知随处可见,即使处于离线状态,您也可以通过移动设备获得更丰富且可靠的体验. 要在智能手机上接收通知,您可以配置设备附带的日历应用,或安装 Android 或 iPhone 版 Google 日历.要详细了解如何配置通知的默认设置,请访问帮助中心. 请注意:此项更改不会影响 Google Drive for Work.

JavaScript后台代码操作HTML TABLE的方法

原文:JavaScript后台代码操作HTML TABLE的方法 var rowNum = 0,fileNum = 0; //行号与列号 var oNewRow; //定义插入行对象 var oNewCell1,oNewCell2; //定义插入列对象 var fileNum = 1; function addFileToTable(strFile) { fileNum +=1; rowNum = document.getElementById("NewFileList").rows.

SharePoint 讨论板常见的代码操作

SharePoint 讨论板常见的代码操作 我们直入主题,讨论针对SharePoint 讨论板常用的代码操作有哪些呢? 1. 你的网站集和网站: 2. 假设我们有一个名为"MyDiscussionList"的讨论板列表. 获得这个列表的GUID: 小建议: list.ItemCount将会返回所有讨论和答复. list.Items.Count将只返回答复. 3. 获得你的列表: 4. 创建新讨论: 5. 读取所有讨论: 6. 如果要删除一个讨论: 7.遍历所有讨论答复: 8. 删除一个

代码操作Sharepoint文档库(创建、上传附件)

代码操作Sharepoint文档库(创建.上传附件) 做项目中遇到客户需求,根据Infopath表单生成Excel并上传到Sharepoint指定文档库中 创建文档库 SPSite site = new SPSite(siteurl); SPListItem item = site.AllWebs["网站名"].Lists["列表名"].Folders.Add("文档库URL", SPFileSystemObjectType.Folder); i

关于SQLServer的一些简单代码操作

就不介绍了在studio中的图形化操作了,这里简单介绍了一些SQL语言的操作. 首先: 给一些例子怎样创建一个数据库对象和表(创建create  删除drop): 1.创建数据库对象 1 --创建数据库对象 2 create database School; 3 4 --删除数据库 5 drop database School 6 7 --创建数据库 的时候制定一些参数 8 9 create database School 10 on primary 11 ( 12 --数据库的逻辑名称 13

不使用spring的情况下用java原生代码操作mongodb数据库的两种方式

由于更改了mongodb3.0数据库的密码,导致这几天storm组对数据进行处理的时候,一直在报mongodb数据库连接不上的异常.   主要原因实际上是和mongodb本身无关的,因为他们改的是配置文件的密码,而实际上这个密码在代码中根本就没有使用,他们在代码中已经把用户验证信息写死.   在协助他们解决这个问题的时候,我看到他们代码中在和mongodb数据库交互时使用了已经不被建议使用的方法,于是便抽时间尝试了一下另一种被建议的方式实现各功能.   当然了,生产环境中用的是mongodb集群

使用代码操作windows防火墙的启用与关闭

通过代码操作防火墙的方式有两种:一是代码操作修改注册表启用或关闭防火墙:二是直接操作防火墙对象来启用或关闭防火墙.不论哪一种方式,都需要使用管理员权限,所以操作前需要判断程序是否具有管理员权限. 1.判断程序是否拥有管理员权限 需要引用命名空间:System.Security.Principal /// <summary> /// 判断程序是否拥有管理员权限 /// </summary> /// <returns>true:是管理员:false:不是管理员</re

Java代码操作zookeeper

以下为一个完整JAVA操作Zookeeper项目步骤: 1. 项目中pom.xml中添加需要的依赖jar包信息 <dependencies> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.9</version> </dependency> <