Google Calendar API - 导入事件:所有者必须是组织者或与会者

时间:2013-01-02 19:13:00

标签: import google-calendar-api owner

我正在为我的某个项目使用Google Calendar API。

我想从我的应用中将事件导入Google日历,并将其锁定,以便最终用户无法在Google日历中修改它们。

到目前为止API效果很好,但是,当我尝试导入某个事件时,我收到此错误:

  

日历的所有者必须是组织者或导入事件的参与者。

即使我将组织者设置为日历所有者之一。

以下是API控制台的POST示例:

POST https://www.googleapis.com/calendar/v3/calendars/_my_calendar_id%40group.calendar.google.com/events/import?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.AHES6ZTdiWGywGp2LLSUlc8BV-dVIwJET5azIkNekjNgRjHRWc_Ojg
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "end": {
  "dateTime": "2013-01-02T16:22:00+00:00"
 },
 "iCalUID": "123456789",
 "start": {
  "dateTime": "2013-01-02T14:22:00+00:00"
 },
 "organizer": {
  "email": "_this_is_the_owner@gmail.com",
  "displayName": "Owner Guy"
 },
 "attendees": [
  {
   "email": "_this_is_the_owner@gmail.com"
  }
 ]
}

重现的步骤:

  • 创建日历并获取ID或使用主日历的“主要”。
  • 与某人分享,或者让某人成为拥有者。
  • 转到日历API参考/ events / import - > “试试吧!”,并在提交POST之前使用oAuth进行身份验证。
  • 填写必填字段(开始,结束,icaluid等)
  • 尝试将组织者或任何与会者设置为日历所有者之一。

2 个答案:

答案 0 :(得分:3)

在错误消息上:

  

日历的所有者必须是组织者或导入事件的参与者。

恕我直言,The owner确实不是Google用户,而是您正在处理的类似电子邮件的日历ID 。这解释了为什么有些案例仅适用于primary日历,因为主日历与其所有者用户(xxx@gmail.com)具有相同的ID。

所以,你可以试试这些:

  1. 不要设置任何与管理器相关的字段。然后,Google会为字段设置适当的值(attendees[].organizerorganizer)。
  2. 将日历ID设置为attendee[].email

答案 1 :(得分:2)

从我的实验(我不知道这在任何地方都有记录),你只能导入'与"主要"的与会者的活动;帐户中的日历(不是子日历)。我不知道为什么会这样。还要注意“进口”#39;制作活动的私人副本,活动的更改不会传播给其他与会者(尽管可能会有与会者身份)。