Google 日历 API Javascript - 添加事件格式

Google Calendar API Javascript - Add event formatting

我对任何类型的 Google API 都是全新的,并且对一般代码来说相对较新。我正在尝试制作一个网站,允许我从复选框列表中 select 多天,并在那些日子为我创建 Google 日历事件。

我正在使用 ASP.net 网页进行显示和复选框逻辑,并将复选框结果作为 JSON 发送到 Javascript。然后在 Javascript.

中处理 JSON 和 google 日历内容

只需从一些示例中复制样板代码,我就能够通过 Google 进行身份验证,并使用硬编码的事件详细信息成功地将事件添加到我的日历中。当我尝试使用变量而不是硬编码详细信息填充事件详细信息时,问题就开始了。

我相信我已经非常接近让它正常工作了,只是有一些小的格式问题导致它无法正常工作。

这适用于 "var resource"

中的硬编码细节
function makeApiCall3() {
            for (var i = 0; i < arrayOfEvents.length; i++)
            {

                var t1 = "{\"summary\":\"" + arrayOfEvents[i].summary + "\", \"start\":" + JSON.stringify(arrayOfEvents[i].start) + ", \"end\":" + JSON.stringify(arrayOfEvents[i].end) + "}"; 
                gapi.client.load('calendar', 'v3', function () {
                    var resource = {
                        "summary": "Appointment",
                        "location": "Somewhere",
                        "start": {
                            "dateTime": "2017-05-29T10:00:00.000-07:00"
                        },
                        "end": {
                            "dateTime": "2017-05-29T10:00:00.000-07:00"
                        }

                    };
                    var request = gapi.client.calendar.events.insert({
                        'calendarId': 'primary',
                        'resource': resource
                    });
                    request.execute(function (resp) {
                        console.log(resp);
                    });
                    alert(t1);
                });

            }

            alert("End of Calendar Call");
        }

当我尝试用我创建的详细信息 "t1" 替换 "resource" 的内容时,这不起作用。

function makeApiCall3() {
            for (var i = 0; i < arrayOfEvents.length; i++)
            {

                var t1 = "\"summary\":\"" + arrayOfEvents[i].summary + "\", \"start\":" + JSON.stringify(arrayOfEvents[i].start) + ", \"end\":" + JSON.stringify(arrayOfEvents[i].end); 
                gapi.client.load('calendar', 'v3', function () {
                    var resource = { t1
                 //       "summary": "Appointment",
                 //       "location": "Somewhere",
                 //       "start": {
                 //           "dateTime": "2017-05-29T10:00:00.000-07:00"
                  //      },
                  //      "end": {
                  //          "dateTime": "2017-05-29T10:00:00.000-07:00"
                  //      }

                    };
                    var request = gapi.client.calendar.events.insert({
                        'calendarId': 'primary',
                        'resource': resource
                    });
                    request.execute(function (resp) {
                        console.log(resp);
                    });
                    alert(t1);
                });

            }

            alert("End of Calendar Call");
        }

这也不起作用,我只是将 "var request" "resource" 部分替换为 "t1"。

function makeApiCall3() {
            for (var i = 0; i < arrayOfEvents.length; i++)
            {

                var t1 = "{\"summary\":\"" + arrayOfEvents[i].summary + "\", \"start\":" + JSON.stringify(arrayOfEvents[i].start) + ", \"end\":" + JSON.stringify(arrayOfEvents[i].end) + "}"; 
                gapi.client.load('calendar', 'v3', function () {
                    var resource = {
                        "summary": "Appointment",
                        "location": "Somewhere",
                        "start": {
                            "dateTime": "2017-05-29T10:00:00.000-07:00"
                        },
                        "end": {
                            "dateTime": "2017-05-29T10:00:00.000-07:00"
                        }

                    };
                    var request = gapi.client.calendar.events.insert({
                        'calendarId': 'primary',
                        'resource': t1
                    });
                    request.execute(function (resp) {
                        console.log(resp);
                    });
                    alert(t1);
                });

            }

            alert("End of Calendar Call");
        }

为了调试,我一直在发出警报,t1 警报结果看起来好像我已经完全按照样板代码格式化数据,但它不起作用。 (照片在这里->) alert(t1) result

我尝试了此处讨论的批处理方法,但也无法正常工作。 Google Calendar javascript api - Add multiple events

感谢您的帮助。

我已经解决了这个问题。在此问题之前,我不知道我可以在浏览器中使用开发者控制台 "debug"。在发现开发人员控制台后,我能够逐步解决我遇到的几个小问题并解决它。

我遇到的主要问题是 Google Calendar 似乎不喜欢我使用的日期格式,其中时区偏移量包含在 dateTime 字符串中。通过将其分离出来并将其作为时区区域单独插入,我取得了成功。