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

本文共 2255 字,大约阅读时间需要 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); }

代码下载

posted on
2014-10-02 12:45 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/4004000.html

你可能感兴趣的文章
《Akka应用模式:分布式应用程序设计实践指南》读书笔记8
查看>>
jQuery垂直滑动切换焦点图
查看>>
Python-S9-Day127-Scrapy爬虫框架2
查看>>
模运算
查看>>
python多线程的使用
查看>>
团队编程项目作业1-成员简介及分工
查看>>
使用Chrome(PC)调试移动设备上的网页
查看>>
UI基础--手写代码实现汤姆猫动画
查看>>
Python+pytesseract+Tesseract-OCR图片文字识别(只适合新手)
查看>>
使用gitbash来链接mysql
查看>>
docker镜像管理基础
查看>>
黑盒测试和百合测试的优缺点对比
查看>>
SecureCRT的使用方法和技巧(详细使用教程)
查看>>
装饰者模式
查看>>
右侧导航栏(动态添加数据到list)
查看>>
用Nginx+Lua(OpenResty)开发高性能Web应用
查看>>
81、iOS本地推送与远程推送详解
查看>>
Sharepoint online 如何使用asp.net开发项目!!!
查看>>
C#基础_注释和VS常用快捷键(一)
查看>>
http协议
查看>>