2012-07-22 54 views
1

我試圖通過組建一個簡單的頁面,做以下自學一些JQuery的/ REST /谷歌API:如何使用v3 API和JQuery將事件添加到Google日曆?

  1. 服務器驗證與谷歌
  2. 驗證令牌
  3. 獲取谷歌日曆列表對於選定的日曆
  4. 用戶
  5. 列表事件添加事件選定的日曆

我有#1到#4的工作(雖然毫無疑問是一種難看的方式),並且正在絆倒#5。這裏的JQuery的AJAX調用:

var url = 'https://www.googleapis.com/calendar/v3/calendars/[MY_CALENDAR_ID]/events?sendNotifications=false&access_token=[GOOGLE_API_TOKEN]'; 
      var data = { end: { dateTime: "2012-07-22T11:30:00-07:00" } 
          , start: { dateTime: "2012-07-22T11:00:00-07:00" } 
          , summary: "New Calendar Event from API" 
         }; 

      var ajax = $.ajax({ url: url 
           , data: data 
           , type: 'POST' 
         }).done(addEventDone) 
          .fail(function (jqHXR, textStatus) { 
           console.log("addEvent(): ajax failed = " + jqHXR.responseText); 
           console.log(jqHXR); 
          }); 

的結果是一個全球性的parseError:「這個API不支持解析形式編碼的輸入。」前四個步驟都使用GET ajax調用,所以我不確定這是什麼讓我絆倒。

這裏是有問題的API:我想我可能會做的事情漫長而艱辛的道路,我的新的方法是解決這個使用JavaScript API,而不是在它與手動JQuery的直行和https://developers.google.com/google-apps/calendar/v3/reference/events/insert

休息。這是我試圖向前推進的方法http://code.google.com/p/google-api-javascript-client/wiki/Samples#Calendar_API,儘管如果有一些簡單的東西我會在上面的代碼中搞砸了,我仍然喜歡將它作爲學習機會。

感謝您的任何幫助,見解,指針等。我將發佈更新,如果我使用JavaScript API進行任何進度。

回答

6

有意思的是,我剛剛回答了一個類似的問題here。您直覺使用Google的JS客戶端庫是一個不錯的選擇。它將爲您處理OAuth 2,如果您要對日曆數據進行任何操作,這是一項要求。

我的其他答案有一個鏈接到我創作的blog post(它演示了客戶端和用戶授權的配置),以及插入日曆事件的示例。

+0

感謝您的例子。那正是我期待的! – Erik 2012-07-24 07:08:27

0

你需要設置的contentType: 「應用/ JSON」,爲您的數據和方法做JSON.stringify: 'POST'

var ajax = $.ajax({ 
url: url, 
contentType: "application/json", 
data: JSON.stringify(data), 
method : 'POST', 
}); 
相關問題