我尝试使用 Google Calendar v3 API 完成一项相对简单的任务,但我一直遇到 404 错误。我只需要访问一个日历(属于我的客户)并通过 Javascript 获取只读事件数据(仅使用带有 Ajax 调用的协议),所以我试图避免使用身份验证。
我通过转到日历共享设置单击“与他人共享此日历”然后选择“将此日历公开”来公开日历。但是,我唯一的公开选项是“仅查看空闲/忙碌(隐藏详细信息)。 "
意识到这一点后,我编辑了每个事件以专门将类型设置为“公共”。
现在,我可以从日历资源中获取 eventList,但是数组中的每个项目只有一些细节(见下文)。而且,当我尝试访问单个事件时,我得到一个 404。
尝试使用基本测试日历后,我相当确定日历共享设置是问题所在。我客户的日历和我使用的测试日历之间的主要区别在于,他的日历是 Google Apps for business 帐户的一部分,我很确定。
日历本身中是否有任何设置我可以编辑以使 API 工作而无需使用身份验证来访问数据?或者,在商业应用程序设置中是否有一个选项可以让我的客户更改?同样,我说的是仅使用 Javascript 在一个特定日历上执行 GET 请求,因此不需要进行身份验证。
我真的没有代码可以在这里显示,因为我只是通过 URI 获取数据;在 API 文档中使用资源管理器工具时,我遇到了同样的问题(404)。但是,正如您所料,当我使用该资源管理器工具进行身份验证时,事件显示没有问题。
eventList 中的示例项目:
{ “种类”:“日历#事件”, "id": "(idremoved)", “状态”:“确认”, “更新”:“2012-05-29T21:06:42.000Z”, “开始”: { “日期时间”:“2012-06-18T19:00:00-05:00” }, “结尾”: { “日期时间”:“2012-06-18T21:00:00-05:00” }, “知名度”:“公开” }