使用api插入的Google日历活动无法打印

时间:2018-10-20 15:55:36

标签: c# google-api google-calendar-api google-api-dotnet-client

使用Google的api和服务帐户插入的事件在我查看日历时显示正常,但在打印日历时不包括在内。

手动插入的事件将按预期打印。我正在使用以下代码。

string[] scopes = new string[] { CalendarService.Scope.Calendar };
GoogleCredential credential;
using (var stream = new FileStream("mikeServiceAccount.json", FileMode.Open, 
  FileAccess.Read))
{
    credential = GoogleCredential.FromStream(stream).CreateScoped(scopes);
}

// Create the Calendar service.
var service = new CalendarService(new BaseClientService.Initializer()
{
    HttpClientInitializer = credential,
    ApplicationName = "Calendar Authentication Sample",
});

Event myEvent = new Event
{
    Summary = "Summary Title",
    Description = "event description"
    Location = "Nashville, TN"
    Start = new EventDateTime()
            {
                Date = "2018-10-19"
            },
            End = new EventDateTime()
            {
                Date = "2018-10-19"
            }
}; 
service.Events.Insert(myEvent,"b4sbsrsdf9r82sbj0@group.calendar.google.com").Execute();

这是查看和打印日历时看到的内容的综合屏幕截图。 https://i.stack.imgur.com/8FqAk.png

2 个答案:

答案 0 :(得分:0)

我能够解决这个问题,但实际上最终只是一个概念证明,因此我没有回头看的代码。我记得它的问题最终是我用作endDate的值。我不记得具体细节,但是也许我使用了与startDate相同的日期并添加了午夜的结束时间。反正就是这样。祝你好运,对不起,我帮不上忙。

答案 1 :(得分:0)

使用mikeh提供的信息作为提示,

我们能够解决“打印时不显示全天活动”的问题。

我的解决方案是...

将开始设置为“ YYYY-MM-DDT00:00:00”,然后...

在开始的“第二天”将结束时间设置为00:00:00。

谢谢。

start: {
  dateTime : new Date("2020-01-25T00:00:00").toISOString()
  ,timeZone: 'Asia/Tokyo'
}
,end: {
  dateTime : new Date("2020-01-26T00:00:00").toISOString()
  ,timeZone: 'Asia/Tokyo'
}