Sample code for 30+ languages & platforms
Visual FoxPro

Outlook Contacts Create a Contact

See more Outlook Contact Examples

Creates an Outlook Contact.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJsonToken
LOCAL loJson
LOCAL loResp
LOCAL loJResp

lnSuccess = 0

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

loHttp = CreateObject('Chilkat.Http')

* Use your previously obtained access token here: Get Outlook Contacts OAuth2 Access Token (Azure AD v2.0 Endpoint).

loJsonToken = CreateObject('Chilkat.JsonObject')
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/outlookContacts.json")
IF (lnSuccess = 0) THEN
    ? loJsonToken.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    CANCEL
ENDIF

loHttp.AuthToken = loJsonToken.StringOf("access_token")

* Send the following POST:

* POST https://graph.microsoft.com/v1.0/me/contacts
* Content-type: application/json
* 
* {
*   "givenName": "Pavel",
*   "surname": "Bansky",
*   "emailAddresses": [
*     {
*       "address": "pavelb@fabrikam.onmicrosoft.com",
*       "name": "Pavel Bansky"
*     }
*   ],
*   "businessPhones": [
*     "+1 732 555 0102"
*   ]
* }

* Build the JSON body of the POST.

* Use this online tool to generate code from sample JSON: 
* Generate Code to Create JSON

loJson = CreateObject('Chilkat.JsonObject')
loJson.UpdateString("givenName","Pavel")
loJson.UpdateString("surname","Bansky")
loJson.UpdateString("emailAddresses[0].address","pavelb@fabrikam.onmicrosoft.com")
loJson.UpdateString("emailAddresses[0].name","Pavel Bansky")
loJson.UpdateString("businessPhones[0]","+1 732 555 0102")

* Send the HTTP POST
loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpJson("POST","https://graph.microsoft.com/v1.0/me/contacts",loJson,"application/json",loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loJson
    RELEASE loResp
    CANCEL
ENDIF

? "Response status code = " + STR(loResp.StatusCode)

loJResp = CreateObject('Chilkat.JsonObject')
loJResp.Load(loResp.BodyStr)
loJResp.EmitCompact = 0
? loJResp.Emit()

* The send succeeded if the response status code = 201.
IF (loResp.StatusCode <> 201) THEN
    ? "Failed"
    RELEASE loHttp
    RELEASE loJsonToken
    RELEASE loJson
    RELEASE loResp
    RELEASE loJResp
    CANCEL
ENDIF

* Sample JSON response:

* {
*   "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('4ee732c3-322e-4a6b-b729-2fd1eb5c6004')/contacts/$entity",
*   "@odata.etag": "W/\"EQAAABYAAABUcG0qWqkmQYqWLHQataQxAAD0iYfT\"",
*   "id": "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQBGAAAAAAAu7cUXL5YOTrdsUIw7-v8FBwBUcG0qWqkmQYqWLHQataQxAAAAAAEOAABUcG0qWqkmQYqWLHQataQxAAD0sxexAAA=",
*   "createdDateTime": "2021-06-29T16:32:05Z",
*   "lastModifiedDateTime": "2021-06-29T16:32:06Z",
*   "changeKey": "EQAAABYAAABUcG0qWqkmQYqWLHQataQxAAD0iYfT",
*   "categories": [
*   ],
*   "parentFolderId": "AAMkADYzZWE3YmZmLWU0YzgtNGNkZC04MGE1LWFiYTFlNTRlY2QwYQAuAAAAAAAu7cUXL5YOTrdsUIw7-v8FAQBUcG0qWqkmQYqWLHQataQxAAAAAAEOAAA=",
*   "birthday": null,
*   "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": {},
*   "businessAddress": {},
*   "otherAddress": {}
* }

? "Contact created."

RELEASE loHttp
RELEASE loJsonToken
RELEASE loJson
RELEASE loResp
RELEASE loJResp