【问题标题】:Google Calendar API - Import event: Owner must be organizer or attendeeGoogle Calendar API - 导入活动:所有者必须是组织者或参与者
【发布时间】:2012-12-17 03:44:57
【问题描述】:

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

我想将事件从我的应用程序导入到 Google 日历,并锁定它们,这样最终用户将无法在 Google 日历中修改它们。

到目前为止,该 API 运行良好,但是,当我尝试 import 一个事件时,我收到以下错误:

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

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

这是来自 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 或使用“主要”作为您的主日历。
  • 与他人分享,或让他人成为所有者。
  • 转到 Calendar API Reference/events/import -> “试试看!”,并在提交 POST 之前使用 oAuth 进行身份验证。
  • 填写必填字段(开始、结束、icaluid 等)
  • 尝试将组织者或任何与会者设置为日历的所有者之一。

【问题讨论】:

  • 这个问题你解决了吗?您现在可以导入活动了吗?

标签: import google-calendar-api owner


【解决方案1】:

关于错误信息:

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

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

所以,你可以试试这些:

  1. 不要设置任何与组织者相关的字段。然后 Google 为这些字段设置适当的值(attendees[].organizerorganizer)。
  2. 将日历 ID 设置为 attendee[].email

【讨论】:

    【解决方案2】:

    根据我的实验(我不知道这在任何地方都有记录),您只能将参与者的活动“导入”到帐户中的“主要”日历(而不是子日历)。我不知道这是为什么。另请注意,“导入”会生成活动的私人副本,并且对活动的更改不会传播给其他与会者(尽管可能会是与会者状态)。

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 2014-10-09
      相关资源
      最近更新 更多