如何使用javascript删除辅助谷歌日历

时间:2016-11-24 14:11:16

标签: javascript jquery calendar google-calendar-api

抱歉我的英语不好...... :)希望你能理解我。

我正在开发一个带谷歌日历的项目,直到现在我能够在其上创建日历插入/删除/修改事件,但我找不到通过'calendarID'删除日历的方法。我正在使用javascript

这是google开发人员的“java”示例脚本,但不起作用:

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Delete a calendar
service.calendars().delete("secondaryCalendarId").execute();

这是我正在处理的代码:

    <script src="js/jquery.js" type="text/javascript"></script>
    <script src="js/bootstrap.min.js"></script>
    <script type="text/javascript">


                $(document).ready(function(){


                $(".btnCalCreate").hide();

                $("#btnCalCreate").click(function(){
                createCalendar();               

                });



                });



        // date variables
        var now = new Date();
        today = now.toISOString();

        var twoHoursLater = new Date(now.getTime() + (2 * 1000 * 60 * 60));
        twoHoursLater = twoHoursLater.toISOString();

        // Google api console clientID and apiKey 
        var clientId = 'xxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com';
        var apiKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';


        var scopes = 'https://www.googleapis.com/auth/calendar';

        // OAuth2 functions
        function handleClientLoad() {
            gapi.client.setApiKey(apiKey);
            window.setTimeout(checkAuth, 1);
        }

        function checkAuth() {
            gapi.auth.authorize({ client_id: clientId, scope: scopes, immediate: true }, handleAuthResult);
        }

        // show/hide the 'authorize' button, depending on application state
        function handleAuthResult(authResult) {
            var authorizeButton = document.getElementById('authorize-button');
            var eventButton     = document.getElementById('btnCreateEvents');
            var eventDelButton  = document.getElementById('btnDeleteEvents');
            var eventGetList    = document.getElementById('btnGetCalendarlist');
            var eventCreateCal  = document.getElementById('btnCalCreate');
            var resultPanel     = document.getElementById('result-panel');
            var resultTitle     = document.getElementById('result-title');



            if (authResult && !authResult.error) {
                $(".panel-login").text('Login in corso...');
                authorizeButton.style.visibility = 'hidden';        // if authorized, hide button
                resultPanel.className = resultPanel.className.replace(/(?:^|\s)panel-danger(?!\S)/g, '')// remove red class
                resultPanel.className += ' panel-success';          // add green class
                resultTitle.innerHTML = 'Accesso Eseguito';     // display 'authorized' text

                //eventButton.style.visibility = 'visible';
                //eventDelButton.style.visibility = 'visible';
                //eventGetList.style.visibility = 'visible';
                eventCreateCal.style.visibility = 'visible';
                $('#btnCalCreate').insertBefore('#authorize-button');
                $("#txtEventDetails").attr("visibility", "visible");
            } else {                                                    // otherwise, show button
                authorizeButton.style.visibility = 'visible';               
                $("#txtEventDetails").attr("visibility", "hidden");

                //eventButton.style.visibility = 'hidden';
                //eventDelButton.style.visibility = 'hidden';
                //eventGetList.style.visibility = 'hidden';
                eventCreateCal.style.visibility = 'hidden';

                resultPanel.className += ' panel-danger';           // make panel red
                authorizeButton.onclick = handleAuthClick;          // setup function to handle button click
            }
            getAvailableCalendars();
        }

        // function triggered when user authorizes app
        function handleAuthClick(event) {
            gapi.auth.authorize({ client_id: clientId, scope: scopes, immediate: false }, handleAuthResult);
            return false;
        }

        function refreshICalendarframe() {
            var iframe = document.getElementById('divifm')
            iframe.innerHTML = iframe.innerHTML;
        }
        // setup event details

        // function load the calendar api and make the api call
        function makeApiCall() {
            var eventResponse = document.getElementById('event-response');

            gapi.client.load('calendar', 'v3', function () {                    // load the calendar api (version 3)
                var request = gapi.client.calendar.events.insert
                ({
                    'calendarId': 'xxxxxxxxxxxxxxx80g@group.calendar.google.com', // calendar ID
                    "resource": resource                            // pass event details with api call
                });

                // handle the response from our api call
                request.execute(function (resp) {
                    if (resp.status == 'confirmed') {
           eventResponse.innerHTML = "Event created successfully. View it <a href='" + resp.htmlLink + "'>online here</a>.";
                        eventResponse.className += ' panel-success';
                        eventResponse.className += ' panel-LIST';
                        refreshICalendarframe();
                    } else {
                  document.getElementById('event-response').innerHTML = "There was a problem. Reload page and try again.";
                        eventResponse.className += ' panel-danger';
                    }
                });
            });
        }
        var resource = {
            "summary": "MyEvent",
            "start": {
                "dateTime": today
            },
            "end": {
                "dateTime": twoHoursLater
            },
            "description":"We are organizing events",
            "location":"US",
            "attendees":[
            {
                    "email":"xyz@gmail.com",
                    "displayName":"Shaveta",
                    "organizer":true,
                    "self":false,
                    "resource":false,
                    "optional":false,
                    "responseStatus":"needsAction",
                    "comment":"This is event first",
                    "additionalGuests":3

            },
            {   
                "email":"abc@gmail.com",
                    "displayName":"Chatak",
                    "organizer":true,
                    "self":false,
                    "resource":false,
                    "optional":false,
                    "responseStatus":"needsAction",
                    "comment":"This is office event",
                    "additionalGuests":3
            }
            ],
        };

        // FUNCTION TO DELETE EVENT
       function deleteEvent() {
         gapi.client.load('calendar', 'v3', function() {  
           var request = gapi.client.calendar.events.delete({
             'calendarId': 'xxxxxxxxxxx@group.calendar.google.com',
             'eventId': '8xxxxxxxxxj0vh50d5urouo74'
           });
         request.execute(function(resp) {
             alert(resp.status);
            if (resp.status == 'confirmed') {
                alert("Event was successfully removed from the calendar!");
            }
            else{
                alert('An error occurred, please try again later.');
            }
         });
         });
       } 

       // FUNCTION DELETE CALENDAR

       function deleteCalendar(){

           var key     = $('#input-key').val();\\ this is calendars id

           alert(key);

           service.calendars().delete(key).execute();

           }

 // FUNCTION create calendar         

       function createCalendar() { 

        var name     = $('#input-name').val();

        for (var i = 0; i < aID.length; i++) {

            if (aID[i] === name) {
                $("#input-name").after('<div class=\"text-danger\">Nome calendario gi&agrave; presente!</div>');
                setTimeout(function(){$('.text-danger').hide();}, 800*10);
                var name='';
                die;
            }
        }


            //die; // remeber to remove

        // check if leght of calendar name is good  

        if ((name <1) || (name > 50)) {



            $("#input-name").after('<div class=\"text-danger\">Nome calendario non valido!</div>');
            setTimeout(function(){$('.text-danger').hide();}, 800*10);

            return false;
        }




        var req = gapi.client.calendar.calendars.insert(
    {
        "resource": 
        {"summary": name,
         "description": "mycalendar",
         "timezone": "Europe/Rome"}
    });


    //$('.container').fadeOut(300);
    //$('.gapiRequest').fadeIn(400);
    $(".panel-login").text('Sending API request, please wait...');
    $("#btnCalCreate").prop("disabled", true);

    req.execute(function(resp) {



        calendarId=resp.id;

        //$('.gapiRequest').fadeOut(200);
        $(".panel-login").text('Accesso Eseguito');
        $("#btnCalCreate").prop("disabled", false);
        //$('.container').fadeIn(300);

        $('#input-key').val(calendarId);
        //alert(calendarId);

    });
       } 



       var aID=[];
// FUNCTION get list of calendars
       function getAvailableCalendars() {
      gapi.client.load('calendar', 'v3', function() {
        var request = gapi.client.calendar.calendarList.list();
        request.execute(function(resp) {
            var divCalendars = document.createElement('div');
            divCalendars.innerHTML = '<b>CALENDARI DISPONIBILI:</b><br />'

          for (var i = 0; i < resp.items.length; i++) {
            var calendarID = resp.items[i].id;
            var calendarSummary = resp.items[i].summary;
            var a = document.createElement('a');

            aID.push(calendarSummary);
            //a.title = calendarSummary;
            //a.innerHTML += a.title + /*' -> ' + calendarID + */'<br />';
            //a.href='http://www.sardiniacultureholidays.it/intakeCalInsert.cfm?calendar=' +calendarID;
            //divCalendars.appendChild(a);
            //document.getElementById('calendars').appendChild(divCalendars);





            /**/

          }
        });
      });
    }

        </script>

    <script src="https://apis.google.com/js/client.js?onload=handleClientLoad" type="text/javascript"></script>

(抱歉代码有点混乱)

经过很长时间搜索文档和示例无法找到删除日历的方法,希望你能帮我解决这个问题。

感谢您的帮助。

嗨kendi,我可以使用这样的东西吗?:

var IDCal = 'xxxxxxxxxxxxxxxxxxxxx'

function(request, response) {
        $.ajax({
              url: 'https://www.googleapis.com/calendar/v3/calendars/&IDCal=' + <?php echo $IDCal; ?>,
            dataType: 'json',
            success: function(json) {
                response(resp)
                }));
            }
        });

1 个答案:

答案 0 :(得分:1)

所以,经过这么多尝试后,我找到了按ID删除日历的方法。

这是功能:

function deleteCalendar(){

       var key = $('#input-key').val();

       gapi.client.load('calendar', 'v3', function() {  
       var request = gapi.client.calendar.calendars.delete({
         'calendarId': key
       });

     request.execute(function(resp) {            
        if (typeof resp.code === 'undefined') {
            alert("Calendar was successfully removed!");
        }else{
            alert('An error occurred... Error code: '+ resp.code +' - Message: '+resp.message);
        }

      });

     });

}