Sample code for 30+ languages & platforms
Visual FoxPro

SMSAPI - Create a Contact

See more SMSAPI Examples

Create a Contact

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loHttp
LOCAL loReq
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL loDate_created
LOCAL loDate_updated
LOCAL lcName
LOCAL lcCreated_by
LOCAL lcIdx
LOCAL lcContact_expire_after
LOCAL lcContacts_count
LOCAL lcId
LOCAL lcFirst_name
LOCAL lcLast_name
LOCAL lcPhone_number
LOCAL lcEmail
LOCAL lcGender
LOCAL lcCity
LOCAL lcDescription
LOCAL i
LOCAL lnCount_i

lnSuccess = 0

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

loHttp = CreateObject('Chilkat.Http')

*  Implements the following CURL command:

*  curl -X POST https://api.smsapi.com/contacts -H "Authorization: Bearer token_api_oauth" \
*  -d "phone_number=48500000000&email=bok@smsapi.com&first_name=Name&last_name=Last_name&gender=gender&description=description&city=city&groups=default"

*  Use the following online tool to generate HTTP code from a CURL command
*  Convert a cURL Command to HTTP Source Code

loReq = CreateObject('Chilkat.HttpRequest')
loReq.HttpVerb = "POST"
loReq.Path = "/contacts"
loReq.ContentType = "application/x-www-form-urlencoded"
loReq.AddParam("phone_number","48500000000")
loReq.AddParam("email","bok@smsapi.com")
loReq.AddParam("first_name","Name")
loReq.AddParam("last_name","Last_name")
loReq.AddParam("gender","gender")
loReq.AddParam("description","description")
loReq.AddParam("city","city")
loReq.AddParam("groups","default")

loReq.AddHeader("Authorization","Bearer token_api_oauth")

loResp = CreateObject('Chilkat.HttpResponse')
lnSuccess = loHttp.HttpReq("https://api.smsapi.com/contacts",loReq,loResp)
IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)
loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loReq
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

*  Sample JSON response:
*  (Sample code for parsing the JSON response is shown below)

*  {
*    "id": "5b802315a788494a04690d1d",
*    "first_name": "string",
*    "last_name": "string",
*    "phone_number": "48500000000",
*    "email": "bok@smsapi.com",
*    "gender": "gender",
*    "city": "city",
*    "date_created": "2018-08-24T17:24:05+02:00",
*    "date_updated": "2018-08-24T17:24:05+02:00",
*    "description": "description",
*    "groups": [
*      {
*        "id": "59a3ca1fa78849062837cd0c",
*        "name": "default",
*        "date_created": "2017-08-28T09:45:35+02:00",
*        "date_updated": "2017-08-28T09:45:35+02:00",
*        "description": "",
*        "created_by": "username",
*        "idx": null,
*        "contact_expire_after": null,
*        "contacts_count": null
*      }
*    ]
*  }

*  Sample code for parsing the JSON response...
*  Use the following online tool to generate parsing code from sample JSON:
*  Generate Parsing Code from JSON

loDate_created = CreateObject('Chilkat.DtObj')
loDate_updated = CreateObject('Chilkat.DtObj')

lcId = loJResp.StringOf("id")
lcFirst_name = loJResp.StringOf("first_name")
lcLast_name = loJResp.StringOf("last_name")
lcPhone_number = loJResp.StringOf("phone_number")
lcEmail = loJResp.StringOf("email")
lcGender = loJResp.StringOf("gender")
lcCity = loJResp.StringOf("city")
loJResp.DtOf("date_created",0,loDate_created)
loJResp.DtOf("date_updated",0,loDate_updated)
lcDescription = loJResp.StringOf("description")
i = 0
lnCount_i = loJResp.SizeOfArray("groups")
DO WHILE i < lnCount_i
    loJResp.I = i
    lcId = loJResp.StringOf("groups[i].id")
    lcName = loJResp.StringOf("groups[i].name")
    loJResp.DtOf("groups[i].date_created",0,loDate_created)
    loJResp.DtOf("groups[i].date_updated",0,loDate_updated)
    lcDescription = loJResp.StringOf("groups[i].description")
    lcCreated_by = loJResp.StringOf("groups[i].created_by")
    lcIdx = loJResp.StringOf("groups[i].idx")
    lcContact_expire_after = loJResp.StringOf("groups[i].contact_expire_after")
    lcContacts_count = loJResp.StringOf("groups[i].contacts_count")
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loReq
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp
RELEASE loDate_created
RELEASE loDate_updated