Sample code for 30+ languages & platforms
Lianja

SMSAPI - Create a Contact

See more SMSAPI Examples

Create a Contact

Chilkat Lianja Downloads

Lianja
llSuccess = .F.

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

loHttp = createobject("CkHttp")

// 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("CkHttpRequest")
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("CkHttpResponse")
llSuccess = loHttp.HttpReq("https://api.smsapi.com/contacts",loReq,loResp)
if (llSuccess = .F.) then
    ? loHttp.LastErrorText
    release loHttp
    release loReq
    release loResp
    return
endif

loSbResponseBody = createobject("CkStringBuilder")
loResp.GetBodySb(loSbResponseBody)
loJResp = createobject("CkJsonObject")
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = .F.

? "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
    return
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("CkDtObj")
loDate_updated = createobject("CkDtObj")

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",.F.,loDate_created)
loJResp.DtOf("date_updated",.F.,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",.F.,loDate_created)
    loJResp.DtOf("groups[i].date_updated",.F.,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