Google 日历 API 移动事件

问题描述 投票:0回答:3

这是交易,

在谷歌开发者网站上,他们在每个 api 函数描述的底部都有一个用于尝试 api 的工具,特别是我正在使用日历 api(其中写着“使用下面的 API 资源管理器...): https://developers.google.com/google-apps/calendar/v3/reference/events/get

当您输入日历 ID 和事件 ID 时,此调用将返回一个事件。打开小 OAuth2.0 开关并输入我的 calandarID 和我的事件 ID 后,它会返回一个不错的 200 ok 响应以及事件详细信息。

问题来了: 我转到日历 api 中的 move 函数: https://developers.google.com/google-apps/calendar/v3/reference/events/move

并再次填写我的日历 ID,其中包含我要移动的事件、事件 ID(与之前相同)和目标日历 ID(我的其他 Gmail 帐户)。但在执行此操作时,我得到一个红色框,其中显示“未找到资源”,并且响应是 404。

奇怪的是,我已经能够通过实际的谷歌日历网站做到这一点,方法是进入编辑事件 - >下拉:日历 - >更改所有者,我得到一个框来填写新的日历ID,它成功地转到了我的另一个电子邮件。当我通过 GUI 尝试时,这两个日历都不公开,现在使用 API 时,这两个日历也不公开。我最好希望他们保持这种状态。

有什么想法为什么移动日历事件的 api 对我不起作用?

api google-api google-calendar-api event-id
3个回答
1
投票

要使用 events.move 移动事件,您应该对两个日历都具有写入权限。我尝试转移到其他 Gmail 帐户,但出现 404 错误。但当我尝试转向辅助日历时,它对我有用。 Developers.google.com/google-apps/calendar/concepts


1
投票

我收到了 404 错误,我认为这是一个凭据问题,因为这是网上其他人写的。

目前,当我浏览每个日历的 Google 日历网站并访问“共享此日历”时,我会看到我的服务帐户的电子邮件地址,其中列出了“对事件进行更改”的凭据。这在出发地日历和目的地日历上都有。

所以我不知道如何以不同的方式设置我的凭据。

事实证明根本不是凭据问题。

我一直在使用 Google 日历活动网页 URL 中的“eid”,并假设它是活动 ID。不是这样的。

当我使用有效事件 ID 时,“移动”命令的工作方式如此处记录


0
投票

移动日历事件

  async function moveEvent(){
    console.log("..........................Moving event...............................");
    const request = {
            'calendarId': 'primary',
            'eventId': 'vn9smfr6oel6guhc1t1jh5a4h8',
            'destination': '[email protected]'
          };
    var response =  await gapi.client.calendar.events.move(request);
    console.log(response);
    console.log(JSON.stringify(response));
  }
© www.soinside.com 2019 - 2024. All rights reserved.