代码之家  ›  专栏  ›  技术社区  ›  teja_D

删除谷歌日历事件

  •  0
  • teja_D  · 技术社区  · 8 年前

    如何从我的应用程序中删除特定的谷歌日历事件? 这是我要获取谷歌日历事件的代码。 我正在显示表视图上的所有事件。如果我单击“表视图”时,单元格菜单显示为“删除”选项,则应删除所选事件。

        func fetchEvents() {
            let query = GTLRCalendarQuery_EventsList.query(withCalendarId: "primary")
            query.maxResults = 10
            query.timeMin = GTLRDateTime(date: Date())
            query.singleEvents = true
            query.orderBy = kGTLRCalendarOrderByStartTime
            service.executeQuery(
                query,
                delegate: self,
                didFinish: #selector(displayResultWithTicket(ticket:finishedWithObject:error:)))
        }
    

    在uitextview中显示开始日期和事件摘要

        @objc func displayResultWithTicket(
            ticket: GTLRServiceTicket,
            finishedWithObject response : GTLRCalendar_Events,
            error : NSError?) {
    
            if let error = error {
                showAlert(title: "Error", message: error.localizedDescription)
                return
            }
    
            var outputText = ""
            if let events = response.items, !events.isEmpty {
                for event in events {
                    let start = event.start!.dateTime ?? event.start!.date!
                    let startString = DateFormatter.localizedString(
                        from: start.date,
                        dateStyle: .short,
                        timeStyle: .short)
                    eventDateArray.add(start.date)
    
    
                    let dataDic = ["fullTimeAndDate":startString , "tag":"red", "eventType":event.summary!] // MonthDataModel(fullTimeAndDate: seprated[1], tag: "red", appointmentType: event.eTag)
                    eventArray.add(dataDic)
    
                    outputText += "\(startString) - \(event.summary!)\n"
                    print("Output ", startString , event )
                }
                UserDefaults.standard.set(eventDateArray, forKey: "EventDataArray")
                UserDefaults.standard.set(NSKeyedArchiver.archivedData(withRootObject: eventArray), forKey: "EventArray")
    
    
                UserDefaults.standard.synchronize()
            } else
            {
                outputText = "No upcoming events found."
            }
            print("Output Text",outputText)
            showAlert(title: "Event Sync Succesfully!", message:"")
        }
    

    请引导我,我是新的,速度快,堆栈溢出。

    我试图用此代码删除日历事件,但没有运气。

      func deleteGoogleCalendarEvent() {
    
            let query = GTLRCalendarQuery_EventsDelete.query(withCalendarId: "primary", eventId: self.del_Event_id)
    
            service.executeQuery(query, GTLRServiceCompletionHandler: nil)
        }
    
    2 回复  |  直到 8 年前
        1
  •  0
  •   noogui    8 年前

    Events: delete calendarId eventId

    Swift Google Calendar: Delete an Event

    func chilkatTest() {
        let rest = CkoRest()
        var success: Bool
    
        //   Provide a previously obtained OAuth2 access token.
        let oauth2 = CkoOAuth2()
        oauth2.AccessToken = "OAUTH2_ACCESS_TOKEN"
        rest.SetAuthOAuth2(oauth2)
    
        success = rest.Connect("www.googleapis.com", port: 443, tls: true, autoReconnect: true)
        if success != true {
            print("\(rest.LastErrorText)")
            return
        }
    
        let sbResponse = CkoStringBuilder()
        success = rest.FullRequestNoBodySb("DELETE", uriPath: "/calendar/v3/calendars/support@chilkatcloud.com/events/1p7fb5vob7vm57fepk4p1teft9", sb: sbResponse)
        if success != true {
            print("\(rest.LastErrorText)")
            return
        }
    
        if rest.ResponseStatusCode.integerValue != 204 {
            print("Received error response code: \(rest.ResponseStatusCode.integerValue)")
            print("Response body:")
            print("\(sbResponse.GetAsString())")
            return
        }
    
        print("Example Completed.")
    
    }
    
        2
  •  0
  •   teja_D    8 年前

       func deleteGoogleCalendarEvent() {
    
            let query = GTLRCalendarQuery_EventsDelete.query(withCalendarId: "primary", eventId: self.del_Event_id)
    
            service.executeQuery(query, delegate: self, didFinish: #selector(deleteResultWithTicket(ticket:finishedDelete:error:)))
        }
    

    @objc func deleteResultWithTicket(
            ticket: GTLRServiceTicket,
            finishedDelete response: GTLRCalendarQuery_AclDelete,
            error : NSError?) {
    
            if error != nil {
                print(error?.localizedDescription!)
                return
            }
            self.fetchGoogleCalendarEvents()
        }