首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件中的日历API v3提醒始终是默认的。

事件中的日历API v3提醒始终是默认的。
EN

Stack Overflow用户
提问于 2014-12-15 08:46:19
回答 2查看 1.5K关注 0票数 2

我正在开发日历api客户端,我对提醒有问题-它们不工作.

我创建这样的事件:

代码语言:javascript
复制
Event gEvent = new Event()
{
Summary = "Reminder test",
Location = "Reminder test",
Start = new EventDateTime()
{
DateTime = new DateTime(2014, 12, 14, 21, 0, 0),
},
End = new EventDateTime()
{
DateTime = new DateTime(2014, 12, 14, 22, 0, 0),
},
Reminders = new Event.RemindersData()
{
UseDefault = false,
Overrides = new List<EventReminder>() 
{
new EventReminder()
{
Method = "email",
Minutes = 15
},
new EventReminder()
{
Method = "email",
Minutes = 30
},
new EventReminder()
{
Method = "email",
Minutes = 45
},
}
}
};
Event simpleEvent = calService.Events.Insert(gEvent, strCalendarID).Execute();

此代码工作,在我的谷歌日历GUI是真正创建我的事件,但如果我点击编辑事件-我不能看到我的提醒,只有默认提醒。为什么?我做错什么了?

谢谢你的回答

今天,我尝试用JSON从代码中发送请求。我的方法如下所示:

代码语言:javascript
复制
private static void CreateSimpleEvent(string strAccessToken, string strCalendarID, string strApiKey)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(string.Format("https://www.googleapis.com/calendar/v3/calendars/{0}/events?sendNotifications=false&fields=reminders&key={1}", strCalendarID, strApiKey));
        request.Method = "POST";
        request.ContentType = "application/json";
        request.UserAgent = "TestCalendarApi2";
        request.Headers.Add("Authorization", "Bearer " + strAccessToken);

        string strJson = @"{
                        'end': {
                        'dateTime': '2014-12-19T15:30:00.000Z',
                        'timeZone': 'Europe/Prague'
                        },
                        'start': {
                        'dateTime': '2014-12-19T14:30:00.000Z',
                        'timeZone': 'Europe/Prague'
                        },
                        'reminders': {
                        'useDefault': false,
                        'overrides': [
                        {
                        'method': 'email',
                        'minutes': 13
                        }
                        ]
                        }
                        }";

        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        {
            streamWriter.Write(strJson);
            streamWriter.Flush();
            streamWriter.Close();

            var httpResponse = (HttpWebResponse)request.GetResponse();
            using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
            {
                var result = streamReader.ReadToEnd();
            }
        }
    }

方法继续进行,并在Google日历中创建事件,但当我使用AccessToken from ServiceAccountCredential对象:(。)时,仍然缺少提醒。当我使用在AccessToken (https://developers.google.com/apis-explorer/#p/calendar/v3/)中生成的https://developers.google.com/apis-explorer/#p/calendar/v3/时,提醒是有效的。问题是,在阿皮斯探险家,我必须打开OAuth2,然后我必须大许可.

有没有办法,如何从代码中进行大访问?

谢谢你的回答。

EN

回答 2

Stack Overflow用户

发布于 2018-08-20 13:52:29

在使用服务帐户管理Google中的事件时,提醒的问题是服务帐户实际上是一个具有自己的Google的虚拟用户。事件提醒是为每个用户设置的,所以只有当您将Google作为您的服务帐户登录到Google时,您才能看到提醒。与服务帐户共享日历的用户只看到事件的详细信息,但他们必须设置自己的提醒。

票数 1
EN

Stack Overflow用户

发布于 2015-01-23 22:16:23

同样的问题在这里,事件插入没有任何提醒。通过API资源管理器成功地插入带有提醒的事件发送相同的请求。

我的JSON数据:

代码语言:javascript
复制
{  
   "end":{  
      "dateTime":"2015-01-19T01:20:00.000",
      "timeZone":"Europe\/Minsk"
   },
   "reminders":{  
      "useDefault":false,
      "overrides":[  
         {  
            "method":"sms",
            "minutes":"30"
         },
         {  
            "method":"email",
            "minutes":"60"
         }
      ]
   },
   "start":{  
      "dateTime":"2015-01-19T01:15:00.000",
      "timeZone":"Europe\/Minsk"
   },
   "summary":"New event",
   "start_date":"2015-01-19 01:15",
   "end_date":"2015-01-19 01:20"
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27480213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档