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) Outlook Contacts Update (PATCH) a ContactSee more Outlook Contact ExamplesUpdate the properties of an Outlook contact object. For more information, see https://docs.microsoft.com/en-us/graph/api/contact-update?view=graph-rest-1.0&tabs=http
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. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Use your previously obtained access token here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint). jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/outlookContacts.json") If success = 0 Debug CkJsonObject::ckLastErrorText(jsonToken) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf CkHttp::setCkAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"access_token")) ; Send the following PATCH: ; PATCH https://graph.microsoft.com/v1.0/me/contacts/{id} ; Content-type: application/json ; Content-length: 1977 ; ; { ; "homeAddress": { ; "street": "123 Some street", ; "city": "Seattle", ; "state": "WA", ; "postalCode": "98121" ; }, ; "birthday": "1974-07-22" ; } ; Build the JSON body of the POST. ; Use this online tool to generate code from sample JSON: ; Generate Code to Create JSON json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckUpdateString(json,"homeAddress.street","123 Some street") CkJsonObject::ckUpdateString(json,"homeAddress.city","Seattle") CkJsonObject::ckUpdateString(json,"homeAddress.state","WA") CkJsonObject::ckUpdateString(json,"homeAddress.postalCode","98121") CkJsonObject::ckUpdateString(json,"birthday","1974-07-22") ; We need the ID of the contact to be updated. ; This was available in the response when we created the contact: Create an Outlook Contact. ; Or you can list contacts to get the ID: List Outlook Contacts). id.s = "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAAAAAAEOAABUcG0qWqkmQYqWLHQataQxAAD0sxexAAA=" CkHttp::ckSetUrlVar(http,"id",id) ; Send the HTTP PATCH resp.i = CkHttp::ckPText(http,"PATCH","https://graph.microsoft.com/v1.0/me/contacts/{$id}",CkJsonObject::ckEmit(json),"utf-8","application/json",0,0) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkJsonObject::ckDispose(json) ProcedureReturn EndIf Debug "Response status code = " + Str(CkHttpResponse::ckStatusCode(resp)) CkHttpResponse::ckDispose(resp) jResp.i = CkJsonObject::ckCreate() If jResp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::ckLoad(jResp,CkHttpResponse::ckBodyStr(resp)) CkJsonObject::setCkEmitCompact(jResp, 0) Debug CkJsonObject::ckEmit(jResp) ; The send succeeded if the response status code = 201. If CkHttpResponse::ckStatusCode(resp) <> 200 Debug "Failed" CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkJsonObject::ckDispose(json) CkJsonObject::ckDispose(jResp) ProcedureReturn EndIf ; Sample JSON response: ; { ; "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('4ee732c3-322e-4a6b-b729-2fd1eb5c6004')/contacts/$entity", ; "@odata.etag": "W/\"EQAAABYAAABUcG0qWqkmQYqWLHQataQxAAD0iYu5\"", ; "id": "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAAAAAAEOAABUcG0qWqkmQYqWLHQataQxAAD0sxexAAA=", ; "createdDateTime": "2021-06-29T16:32:05Z", ; "lastModifiedDateTime": "2021-06-29T16:57:39Z", ; "changeKey": "EQAAABYAAABUcG0qWqkmQYqWLHQataQxAAD0iYu5", ; "categories": [ ; ], ; "parentFolderId": "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQAuAAAAAAAu7cUXL5YOTrdsUIw7-v8FAQBUcG0qWqkmQYqWLHQataQxAAAAAAEOAAA=", ; "birthday": "1974-07-22T11:59:00Z", ; "fileAs": "", ; "displayName": "Pavel Bansky", ; "givenName": "Pavel", ; "initials": null, ; "middleName": null, ; "nickName": null, ; "surname": "Bansky", ; "title": null, ; "yomiGivenName": null, ; "yomiSurname": null, ; "yomiCompanyName": null, ; "generation": null, ; "imAddresses": [ ; ], ; "jobTitle": null, ; "companyName": null, ; "department": null, ; "officeLocation": null, ; "profession": null, ; "businessHomePage": null, ; "assistantName": null, ; "manager": null, ; "homePhones": [ ; ], ; "mobilePhone": null, ; "businessPhones": [ ; "+1 732 555 0102" ; ], ; "spouseName": null, ; "personalNotes": "", ; "children": [ ; ], ; "emailAddresses": [ ; { ; "name": "Pavel Bansky", ; "address": "pavelb@fabrikam.onmicrosoft.com" ; } ; ], ; "homeAddress": { ; "street": "123 Some street", ; "city": "Seattle", ; "state": "WA", ; "postalCode": "98121" ; }, ; "businessAddress": {}, ; "otherAddress": {} ; } Debug "Contact updated." CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkJsonObject::ckDispose(json) CkJsonObject::ckDispose(jResp) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.