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