2012-05-30 62 views
1

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

我通过点击“与他人共享此日历”日历共享设置,然后选择“公开这个日历”,但公开的唯一选项是公开的日历。隐藏详细信息)“。

已经意识到这一点,我编辑的每个事件的具体类型设置为‘公开’。

现在,我能够得到从日历资源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

我使用下面的阅读谷歌Apps for Education的日历,它具有相同的API和安全限制为商业。

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

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

从我所看到,如果您的日历是公开的,您的活动也会如此。您需要确保只需粘贴网址即可在浏览器中访问日历的公众。检查事件是否也是公开的。确保日历是公开的,但“仅共享我的空闲/忙碌信息(隐藏详情)”框未选中

+0

谢谢。这也是我最终发现的,尽管公开个人活动不会覆盖日历空闲/忙碌设置令人失望。我的理解是,这是允许公开个人事件的目的。最后,我们将该日历移植到了一个新帐户,但不在该应用的Google App帐户的支持范围之内。 – tmo256

+0

顺便说一下,你使用API​​ v2或v3吗? – tmo256

+0

api v2这可能是javascript超载,但您可以在这里查看我的日历聚合模块:events.ualberta.ca heres the js:http://events.ualberta.ca/WebResource.axd?d = QEgZza-a_z9cErHNf2dys-hrCC5NOPQAuxf7j43AnXrrIp- GXXosYTb3wCbePFNkzzrhRjX_1R8AWjdOKufibQ45t4s7DhPkp95O98hVgGNNOSwkM0vHGSr8jgROpBVZ-zQFzQ2 & t = 634739858576588781 –