我正在尝试使用Google Calendar v3 API完成相对简单的任务,但我一直遇到404错误。我只需要访问一个日历(属于我的客户端)并通过Javascript获取只读事件数据(只需使用带有Ajax调用的协议),所以我试图避免使用身份验证。
我通过转到日历共享设置,点击“与他人共享此日历”然后选择“将此日历设为公开”来公开日历。但是,我公开的唯一选项是“仅查看忙/闲(隐藏)详情)。“
意识到这一点后,我编辑了每个事件,专门将类型设置为“公开”。
现在,我可以从日历资源中获取一个eventList,但是数组中的每个项目只有一些细节(见下文)。而且,当我尝试访问个别事件时,我会得到一个404。
尝试使用基本测试日历后,我非常确定日历共享设置是个问题。我的客户日历和我使用的测试日历之间的主要区别在于他的日历是Google Apps for business帐户的一部分,我相当确定。
日历本身是否有任何设置我可以编辑以使API工作而无需使用auth访问数据?或者,业务应用程序设置中是否有选项可以让我的客户端更改?再说一次,我说的是只使用Javascript在一个特定日历上进行GET请求,因此不需要进行身份验证。
我真的没有代码可以在这里显示,因为我只是通过URI抓取数据;在API文档中使用资源管理器工具时,我遇到了同样的问题(404)。但是,正如您所料,当我使用该资源管理器工具进行身份验证时,事件显示没有任何问题。
eventList中的示例项:
{ "kind": "calendar#event", "id": "(idremoved)", "status": "confirmed", "updated": "2012-05-29T21:06:42.000Z", "start": { "dateTime": "2012-06-18T19:00:00-05:00" }, "end": { "dateTime": "2012-06-18T21:00:00-05:00" }, "visibility": "public" }
答案 0 :(得分:0)
我正在使用以下内容阅读Google Apps for Education日历,该日历具有与商业相同的API和安全限制。
获取公共日历地址后,我决定解析日历的完整版本而不是基本版本:
https://www.google.com/calendar/feeds/your_calendar_id_here%40gmail.com/public/full
如果你的日历是公开的,那么从我所看到的情况来看,你的活动也是如此。您需要确保只需粘贴网址即可在浏览器中访问日历的公开内容。通过这样做也检查事件是否也是公开的。确保日历是公开的,但未选中“仅共享我的忙/闲信息(隐藏详细信息)”框