繁体   English   中英

Google Calendar API Javascript-添加事件格式

[英]Google Calendar API Javascript - Add event formatting

我对任何种类的Google API都是陌生的,并且对代码而言相对较新。 我正在尝试创建一个网站,使我可以从复选框列表中选择多天,并在这些天为我创建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”替换“资源”的内容时,此方法不起作用。

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警报结果看起来像是按照样板代码的格式正确格式化了数据,但是它没有用。 (照片在这里->) 警报(t1)结果

我尝试了此处讨论的批处理方法,但也无法使该方法起作用。 Google Calendar JavaScript API-添加多个事件

谢谢你的帮助。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM