zoukankan      html  css  js  c++  java
  • 通过 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
    = "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);
    }

    代码下载

    GoogleCalendarDemo.rar

  • 相关阅读:
    7--docker-compose详解
    6--容器数据卷,发布镜像,Docker小结
    5-- Dockerfile 搭建 博客系统
    4--Docker之Dockerfile镜像定制
    3--Docker网络 ; Docker图形化界面
    2--Docker容器相关命令
    1--docker介绍、安装; docker镜像相关命令
    2、函数的核心内容
    1、函数的基本使用
    7、文件操作方法
  • 原文地址:https://www.cnblogs.com/dudu/p/2176525.html
Copyright © 2011-2022 走看看