1

我试图通过组合一个执行以下操作的简单页面来自学一些 JQuery/REST/Google API:

  1. 通过 Google 进行身份验证
  2. 验证令牌
  3. 获取用户的 Google 日历列表
  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:https ://developers.google.com/google-apps/calendar/v3/reference/events/insert

我想我可能正在做一些漫长而艰难的事情,我的新方法是使用 javascript API 来解决这个问题,而不是直接使用手动 JQuery 和 REST 来解决这个问题。这是我正在尝试前进的方法http://code.google.com/p/google-api-javascript-client/wiki/Samples#Calendar_API,尽管如果有的话我仍然希望将其用作学习机会一些简单的事情我在上面的代码中搞砸了。

感谢您提供任何帮助、见解、指针等。如果我使用 javascript API 取得任何进展,我将发布更新。

4

2 回答 2

5

有趣的是,我刚刚在这里回答了一个类似的问题。您对使用 Google 的 JS 客户端库的直觉很好。它将为您处理 OAuth 2,如果您要对日历数据进行任何操作,这是一个要求。

我的另一个答案既有指向我撰写的博客文章的链接(演示了客户端和用户授权的配置),也有插入日历事件的示例。

于 2012-07-24T00:33:34.613 回答
0

你需要设置 contentType: "application/json",为你的数据和方法做 JSON.stringify:'POST'

var ajax = $.ajax({
url: url,
contentType: "application/json",
data: JSON.stringify(data),
method : 'POST',
});
于 2016-07-19T06:39:19.083 回答