Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) List Events on a Specified Google CalendarSee more Google Calendar ExamplesDemonstrates how to fetch the list of events on a particular Google Calendar. The calendar can be referenced by the calendar ID, or by the keyword "primary".
IncludeFile "CkHttp.pb" IncludeFile "CkStringBuilder.pb" IncludeFile "CkJsonObject.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; This example uses a previously obtained access token having permission for the ; Google Calendar scope. ; In this example, Get Google Calendar OAuth2 Access Token, the access ; token was saved to a JSON file. This example fetches the access token from the file.. jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/googleCalendar.json") If CkJsonObject::ckHasMember(jsonToken,"access_token") = 0 Debug "No access token found." CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttp::setCkAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"access_token")) ; Let's get the primary calendar. A calendar ID could have be used instead of "primary". CkHttp::ckSetUrlVar(http,"calendarId","primary") sbResponse.i = CkStringBuilder::ckCreate() If sbResponse.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkHttp::ckQuickGetSb(http,"https://www.googleapis.com/calendar/v3/calendars/{$calendarId}/events",sbResponse) If success <> 1 Debug CkHttp::ckLastErrorText(http) CkJsonObject::ckDispose(jsonToken) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndIf If CkHttp::ckLastStatus(http) <> 200 ; Note: If a 401 unauthorized response is received, it likely means that the OAuth2 access token needs ; to be refreshed or re-fetched. Debug "Error response status: " + Str(CkHttp::ckLastStatus(http)) Debug CkStringBuilder::ckGetAsString(sbResponse) CkJsonObject::ckDispose(jsonToken) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponse) ProcedureReturn EndIf ; A sample JSON response: ; (Code for parsing the Google Calendar events is shown below.) ; { ; "kind": "calendar#events", ; "etag": "\"p32cfpufit76da0g\"", ; "summary": "support@chilkatcloud.com", ; "updated": "2017-08-10T14:00:27.199Z", ; "timeZone": "America/Chicago", ; "accessRole": "owner", ; "defaultReminders": [ ; { ; "method": "popup", ; "minutes": 10 ; } ; ], ; "nextSyncToken": "CJj8-fLpzNUCEJj8-fLpzNUCGAU=", ; "items": [ ; { ; "kind": "calendar#event", ; "etag": "\"3004746854620000\"", ; "id": "5jt9fopfg3rr9eftegiuq7gc5k", ; "status": "confirmed", ; "htmlLink": "https://www.google.com/calendar/event?eid=NWp0OWZvcGZnM3JyOWVmdGVnaXVxN2djNWsgc3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t", ; "created": "2017-08-10T13:57:07.000Z", ; "updated": "2017-08-10T13:57:07.310Z", ; "summary": "Run 10 miles", ; "creator": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "organizer": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "start": { ; "dateTime": "2017-08-10T12:00:00-05:00" ; }, ; "end": { ; "dateTime": "2017-08-10T13:00:00-05:00" ; }, ; "iCalUID": "5jt9fopfg3rr9eftegiuq7gc5k@google.com", ; "sequence": 0, ; "hangoutLink": "https://plus.google.com/hangouts/_/chilkatcloud.com/support?hceid=c3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t.5jt9fopfg3rr9eftegiuq7gc5k", ; "reminders": { ; "useDefault": true ; } ; }, ; { ; "kind": "calendar#event", ; "etag": "\"3004746898118000\"", ; "id": "7dvh49vd219r3sq7jdueieu8rc", ; "status": "confirmed", ; "htmlLink": "https://www.google.com/calendar/event?eid=N2R2aDQ5dmQyMTlyM3NxN2pkdWVpZXU4cmMgc3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t", ; "created": "2017-08-10T13:57:29.000Z", ; "updated": "2017-08-10T13:57:29.059Z", ; "summary": "Eat Giordano's Pizza", ; "creator": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "organizer": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "start": { ; "dateTime": "2017-08-10T15:00:00-05:00" ; }, ; "end": { ; "dateTime": "2017-08-10T16:00:00-05:00" ; }, ; "iCalUID": "7dvh49vd219r3sq7jdueieu8rc@google.com", ; "sequence": 0, ; "hangoutLink": "https://plus.google.com/hangouts/_/chilkatcloud.com/support?hceid=c3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t.7dvh49vd219r3sq7jdueieu8rc", ; "reminders": { ; "useDefault": true ; } ; }, ; { ; "kind": "calendar#event", ; "etag": "\"3004746915224000\"", ; "id": "5btd89ljn07bg3tlgpimcaqrro", ; "status": "confirmed", ; "htmlLink": "https://www.google.com/calendar/event?eid=NWJ0ZDg5bGpuMDdiZzN0bGdwaW1jYXFycm8gc3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t", ; "created": "2017-08-10T13:57:37.000Z", ; "updated": "2017-08-10T13:57:37.612Z", ; "summary": "Nap", ; "creator": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "organizer": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "start": { ; "dateTime": "2017-08-10T16:30:00-05:00" ; }, ; "end": { ; "dateTime": "2017-08-10T17:30:00-05:00" ; }, ; "iCalUID": "5btd89ljn07bg3tlgpimcaqrro@google.com", ; "sequence": 0, ; "hangoutLink": "https://plus.google.com/hangouts/_/chilkatcloud.com/support?hceid=c3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t.5btd89ljn07bg3tlgpimcaqrro", ; "reminders": { ; "useDefault": true ; } ; } ; ] ; } ; json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoadSb(json,sbResponse) numEvents.i = CkJsonObject::ckSizeOfArray(json,"items") i.i = 0 While i < numEvents CkJsonObject::setCkI(json, i) Debug CkJsonObject::ckStringOf(json,"items[i].summary") Debug CkJsonObject::ckStringOf(json,"items[i].start.dateTime") Debug CkJsonObject::ckStringOf(json,"items[i].end.dateTime") Debug "--" i = i + 1 Wend ; Sample output: ; Run 10 miles ; 2017-08-10T12:00:00-05:00 ; 2017-08-10T13:00:00-05:00 ; -- ; Eat Giordano's Pizza ; 2017-08-10T15:00:00-05:00 ; 2017-08-10T16:00:00-05:00 ; -- ; Nap ; 2017-08-10T16:30:00-05:00 ; 2017-08-10T17:30:00-05:00 ; -- ; CkJsonObject::ckDispose(jsonToken) CkHttp::ckDispose(http) CkStringBuilder::ckDispose(sbResponse) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.