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) Insert a New Google Calendar EventSee more Google Calendar ExamplesDemonstrates how to insert a new Google Calendar event.
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.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")) ; Build a Google Calendar event: json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(json, 0) CkJsonObject::ckUpdateString(json,"kind","calendar#event") CkJsonObject::ckUpdateString(json,"summary","Eat Lou Malnati's Pizza") CkJsonObject::ckUpdateString(json,"start.dateTime","2021-03-12T12:00:00-05:00") CkJsonObject::ckUpdateString(json,"end.dateTime","2021-03-12T13:00:00-05:00") Debug CkJsonObject::ckEmit(json) ; This is the event JSON we'll be sending the HTTP POST: ; { ; "kind": "calendar#event", ; "summary": "Eat Lou Malnati's Pizza", ; "start": { ; "dateTime": "2021-03-12T12:00:00-05:00" ; }, ; "end": { ; "dateTime": "2021-03-12T13:00:00-05:00" ; } ; } url.s = "https://www.googleapis.com/calendar/v3/calendars/{$calendarId}/events" CkHttp::ckSetUrlVar(http,"calendarId","primary") resp.i = CkHttp::ckPostJson3(http,url,"application/json",json) If CkHttp::ckLastMethodSuccess(http) = 0 Debug CkHttp::ckLastErrorText(http) CkJsonObject::ckDispose(jsonToken) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) ProcedureReturn EndIf jsonResp.i = CkJsonObject::ckCreate() If jsonResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(jsonResp, 0) CkJsonObject::ckLoad(jsonResp,CkHttpResponse::ckBodyStr(resp)) If CkHttpResponse::ckStatusCode(resp) = 200 ; Success. ; The newly created event resource JSON is returned. Debug CkJsonObject::ckEmit(jsonResp) Else If CkHttpResponse::ckStatusCode(resp) = 401 Debug "Try refreshing the access token and then retry..." EndIf ; Failed. ; Show the JSON error response. Debug CkJsonObject::ckEmit(jsonResp) EndIf CkHttpResponse::ckDispose(resp) ; A successful response body: ; { ; "kind": "calendar#event", ; "etag": "\"3004969011208000\"", ; "id": "v7kvmsvsoms3hjl5uq423jqhb0", ; "status": "confirmed", ; "htmlLink": "https://www.google.com/calendar/event?eid=djdrdm1zdnNvbXMzaGpsNXVxNDIzanFoYjAgc3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t", ; "created": "2017-08-11T20:48:25.000Z", ; "updated": "2017-08-11T20:48:25.604Z", ; "summary": "Eat Lou Malnati's Pizza", ; "creator": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "organizer": { ; "email": "support@chilkatcloud.com", ; "self": true ; }, ; "start": { ; "dateTime": "2017-08-12T12:00:00-05:00" ; }, ; "end": { ; "dateTime": "2017-08-12T13:00:00-05:00" ; }, ; "iCalUID": "v7kvmsvsoms3hjl5uq423jqhb0@google.com", ; "sequence": 0, ; "hangoutLink": "https://plus.google.com/hangouts/_/chilkatcloud.com/support?hceid=c3VwcG9ydEBjaGlsa2F0Y2xvdWQuY29t.v7kvmsvsoms3hjl5uq423jqhb0", ; "reminders": { ; "useDefault": true ; } ; } CkJsonObject::ckDispose(jsonToken) CkHttp::ckDispose(http) CkJsonObject::ckDispose(json) CkJsonObject::ckDispose(jsonResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.