Google Calendar API Javascript - 添加事件格式

时间:2017-05-23 17:29:52

标签: javascript google-api google-calendar-api

我对任何类型的Google API都是全新的,而且一般来说代码相对较新。我试图创建一个网站,允许我从复选框列表中选择多天,然后为我创建Google日历活动。

我使用ASP.net网页显示和复选框逻辑,并将复选框结果作为JSON发送到Javascript。然后在Javascript中处理JSON和谷歌日历。

只需复制一些示例中的样板代码,我就可以通过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");
        }

当我尝试替换&#34; resource&#34;的内容时,这不起作用。用我创建的细节&#34; t1&#34;。

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");
        }

这不适用于我只是替换&#34; var请求&#34; &#34;资源&#34;部分到&#34; t1&#34;。

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警报结果看起来好像我已经像样板代码一样格式化了数据,但它还没有工作。 (照片在这里 - &gt;) alert(t1) result

我尝试了这里讨论的批处理方法,但也无法做到这一点。 Google Calendar javascript api - Add multiple events

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。在此问题之前,我没有意识到我可以使用开发人员控制台在浏览器中“调试”。在发现了开发人员控制台之后,我能够逐步解决几个小问题并解决它。

我遇到的主要问题是谷歌日历似乎不喜欢我在日期时间字符串中包含时区偏移的日期格式。通过将其分开并将其作为时区区域单独插入,我取得了成功。