我正在开发日历api客户端,我对提醒有问题-它们不工作.
我创建这样的事件:
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从代码中发送请求。我的方法如下所示:
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,然后我必须大许可.
有没有办法,如何从代码中进行大访问?
谢谢你的回答。
发布于 2018-08-20 13:52:29
在使用服务帐户管理Google中的事件时,提醒的问题是服务帐户实际上是一个具有自己的Google的虚拟用户。事件提醒是为每个用户设置的,所以只有当您将Google作为您的服务帐户登录到Google时,您才能看到提醒。与服务帐户共享日历的用户只看到事件的详细信息,但他们必须设置自己的提醒。
发布于 2015-01-23 22:16:23
同样的问题在这里,事件插入没有任何提醒。通过API资源管理器成功地插入带有提醒的事件发送相同的请求。
我的JSON数据:
{
"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"
}https://stackoverflow.com/questions/27480213
复制相似问题