Sample code for 30+ languages & platforms
Swift

Clickatell Send SMS Text Message

See more Clickatell Examples

Demonstrate how to send a Clickatell SMS text message.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let http = CkoHttp()!

    // Implements the following CURL command:

    // curl -i \
    // -X POST \
    // -H "Content-Type: application/json" \
    // -H "Accept: application/json" \
    // -H "Authorization: API_KEY" \
    // -d '{"content": "Test Message Text", "to": ["PHONE_NUMBER"], "from": "FROM_PHONE_NUMBER" }' \
    // -s https://platform.clickatell.com/messages

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

    // The following JSON is sent in the request body.

    // {
    //   "content": "Test Message Text",
    //   "to": [
    //     "PHONE_NUMBER"
    //   ]
    // }

    let json = CkoJsonObject()!
    json.updateString(jsonPath: "content", value: "Test Message Text")
    json.updateString(jsonPath: "to[0]", value: "PHONE_NUMBER")
    json.updateString(jsonPath: "from", value: "FROM_PHONE_NUMBER")

    http.setRequestHeader(name: "Authorization", value: "API_KEY")
    http.setRequestHeader(name: "Accept", value: "application/json")
    http.setRequestHeader(name: "Content-Type", value: "application/json")

    // If the following URL does not work, then try "https://platform.clickatell.com/v1/message"
    let resp = CkoHttpResponse()!
    success = http.httpJson(verb: "POST", url: "https://platform.clickatell.com/messages", json: json, contentType: "application/json", response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    let sbResponseBody = CkoStringBuilder()!
    resp.getBodySb(sb: sbResponseBody)
    let jResp = CkoJsonObject()!
    jResp.loadSb(sb: sbResponseBody)
    jResp.emitCompact = false

    print("Response Body:")
    print("\(jResp.emit()!)")

    var respStatusCode: Int = resp.statusCode.intValue
    print("Response Status Code = \(respStatusCode)")
    if respStatusCode >= 400 {
        print("Response Header:")
        print("\(resp.header!)")
        print("Failed.")
        return
    }

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

    // {
    //   "messages": [
    //     {
    //       "apiMessageId": "66c06ac68e5c4afb953ea9328babfde6",
    //       "accepted": true,
    //       "to": "16302581871",
    //       "errorCode": null,
    //       "error": null,
    //       "errorDescription": null
    //     }
    //   ],
    //   "errorCode": null,
    //   "error": null,
    //   "errorDescription": 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

    var errorCode: String?
    var error: String?
    var errorDescription: String?
    var i: Int
    var count_i: Int
    var apiMessageId: String?
    var accepted: Bool
    var v_to: String?

    errorCode = jResp.string(of: "errorCode")
    error = jResp.string(of: "error")
    errorDescription = jResp.string(of: "errorDescription")
    i = 0
    count_i = jResp.size(ofArray: "messages").intValue
    while i < count_i {
        jResp.i = i
        apiMessageId = jResp.string(of: "messages[i].apiMessageId")
        accepted = jResp.bool(of: "messages[i].accepted")
        v_to = jResp.string(of: "messages[i].to")
        errorCode = jResp.string(of: "messages[i].errorCode")
        error = jResp.string(of: "messages[i].error")
        errorDescription = jResp.string(of: "messages[i].errorDescription")
        i = i + 1
    }


}