【问题标题】:Google Calendar API v3 404 for Events用于事件的 Google Calendar API v3 404
【发布时间】:2012-06-01 09:57:41
【问题描述】:

我尝试使用 Google Calendar v3 API 完成一项相对简单的任务,但我一直遇到 404 错误。我只需要访问一个日历(属于我的客户)并通过 Javascript 获取只读事件数据(仅使用带有 Ajax 调用的协议),所以我试图避免使用身份验证。

我通过转到日历共享设置点击“与他人共享此日历”然后选择“将此日历设为公开”来公开日历。但是,我唯一的公开选项是“仅查看空闲/忙碌(隐藏详情)。”

意识到这一点后,我编辑了每个事件以专门将类型设置为“公共”。

现在,我可以从日历资源中获取 eventList,但数组中的每个项目只有一些详细信息(见下文)。而且,当我尝试访问单个事件时,我得到了 404。

在尝试使用基本测试日历后,我相当肯定日历共享设置是问题所在。我的客户日历和我使用的测试日历之间的主要区别在于,他的日历是 Google Apps for business 帐户的一部分,我很确定。

我可以编辑日历本身中的任何设置以使 API 正常工作,而无需使用身份验证来访问数据?或者,在业务应用程序设置中是否有一个选项可以让我的客户更改?同样,我说的是仅使用 Javascript 在一个特定日历上执行 GET 请求,因此不需要进行身份验证。

这里真的没有代码可以显示,因为我只是通过 URI 获取数据;在 API 文档中使用资源管理器工具时,我遇到了同样的问题(404)。但是,正如您所料,当我使用该资源管理器工具进行身份验证时,事件显示没有问题。

事件列表中的示例项目:

{ “种类”:“日历#事件”, "id": "(idremoved)", “状态”:“确认”, “更新”:“2012-05-29T21:06:42.000Z”, “开始”: { “日期时间”:“2012-06-18T19:00:00-05:00” }, “结尾”: { “日期时间”:“2012-06-18T21:00:00-05:00” }, “知名度”:“公开” }

【问题讨论】:

    标签: google-calendar-api


    【解决方案1】:

    我正在使用以下内容来阅读 Google Apps for Education 日历,它具有与 Business 相同的 api 和安全限制。

    得到公共日历地址后,我决定解析完整版的日历而不是基础版:

    https://www.google.com/calendar/feeds/your_calendar_id_here%40gmail.com/public/full

    据我所知,如果您的日历是公开的,那么您的活动也会公开。您需要确保只需粘贴 url 即可在浏览器中访问您的日历的公开内容。通过这样做来检查事件是否也是公开的。确保日历是公开的,但未选中“仅共享我的忙/闲信息(隐藏详细信息)”框

    【讨论】:

    • 谢谢。这也是我最终发现的,尽管令人失望的是,公开个别事件并不会覆盖日历忙/闲设置。我的理解是,这就是允许个别事件公开的目的。最后,我们将日历移植到了一个新帐户,该帐户不在此业务的 Google App 帐户的保护范围内。
    • 顺便说一句,您使用的是 API v2 还是 v3?
    • api v2 这可能是 javascript 超载,但您可以在此处查看我的日历聚合模块:events.ualberta.ca 继承人 js:events.ualberta.ca/…
    • 谢谢,Jason,我只是对 REST URL 感到好奇。我正在使用 v3。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-21
    • 2013-04-10
    相关资源
    最近更新 更多