博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过 C# 代码操作 Google 日历
阅读量:6534 次
发布时间:2019-06-24

本文共 2140 字,大约阅读时间需要 7 分钟。

本文主题

借助 Google .NET APIs Client Library,通过 C# 代码在 Google 日历中创建会议邀请

本文背景

最近,Google 了 ,终于可以方便地通过 .NET/C# 代码调用 Google 的 API。

而我们正好有这个需求,所以小试了一下。需求是这样的:通过调用 Google Calendar 的 API,自动创建每周例会的 Google 日历活动,邀请并通知参会者,被邀请者可以修改该日历项。以前这个操作是人工在 Google 日历的 Web 页面上完成的。

准备工作

1. 下载并安装 ,主要用于引用其中的三个程序集。该 SDK 中也包含 Google .NET APIs Client Library 的源代码,正是由于有了源代码,我们在使用中遇到的问题才得以快速解决。

2. 阅读参考文档与示例代码 ,重点查看 (我们的任务就是创建一个日历项)。示例代码只是创建一个包含标题、内容、地点、时间的简历日历项,而我们的需求还包括:a) 邀请参会者(Participants);b) 通知参会者(Notifications);c) 被邀请者可以修改该日历项(GuestsCanModify)。

所遇问题

Google .NET APIs Client Library 没有实现 属性(设置这个属性可以让被邀请者修改日历项),后来我们参照 .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 = "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); }

代码下载

转载地址:http://qswdo.baihongyu.com/

你可能感兴趣的文章
Serv-U 的升级及数据备份和迁移【转】
查看>>
webstorm无法显示左边文件夹目录的解决方法
查看>>
git回滚
查看>>
vue2.0 引用qrcode.js实现获取改变二维码的样式
查看>>
Python 判断闰年,判断日期是当前年的第几天
查看>>
MongoDB 3.0(1):CentOS7 安装MongoDB 3.0服务
查看>>
别随便安装 Pokemon GO被曝藏恶意后门
查看>>
让数据会思考会说话,为出海企业提供多样化数据智能解决方案
查看>>
我眼中的自动化测试框架设计要点
查看>>
FLIF:自由的无损图像格式
查看>>
Google开源Inception-ResNet-v2,提升图像分类水准
查看>>
Opera 出售细节曝光:昆仑出资1.68亿美元
查看>>
CentOS 5.3 下快速安装配置 PPTP ××× 服务器
查看>>
23种设计模式(15):备忘录模式
查看>>
java基础学习总结——IO流
查看>>
iOS获取APP ipa 包以及资源文件
查看>>
算法试题 及其他知识点
查看>>
php课程---Json格式规范需要注意的小细节
查看>>
hadoop hdfs notes
查看>>
Java反射机制详解(3) -java的反射和代理实现IOC模式 模拟spring
查看>>