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