2012-05-30 103 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 –