Sample code for 30+ languages & platforms
PureBasic

Clickatell Send SMS Text Message using HTTP GET

See more Clickatell Examples

Demonstrate how to send a Clickatell SMS text message using an HTTP GET request with query params.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkHttpResponse.pb"
IncludeFile "CkHttp.pb"
IncludeFile "CkJsonObject.pb"

Procedure ChilkatExample()

    success.i = 0

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

    http.i = CkHttp::ckCreate()
    If http.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; Implements the following CURL command:

    ; curl -G https://api.clickatell.com/http/sendmsg \
    ;   -d "api_id=xxxx" \
    ;   -d "user=yourUsername" \
    ;   -d "password=yourPassword" \
    ;   -d "from=yourFromPhoneNumber" \
    ;   -d "to=receiverPhoneNumber" \
    ;   -d "text=The text of your message"

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

    queryParams.i = CkJsonObject::ckCreate()
    If queryParams.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkJsonObject::ckUpdateString(queryParams,"api_id","xxxx")
    CkJsonObject::ckUpdateString(queryParams,"user","yourUsername")
    CkJsonObject::ckUpdateString(queryParams,"password","yourPassword")
    CkJsonObject::ckUpdateString(queryParams,"from","yourFromPhoneNumber")
    CkJsonObject::ckUpdateString(queryParams,"to","receiverPhoneNumber")
    CkJsonObject::ckUpdateString(queryParams,"text","The text of your message")

    ; If the following URL does not work, then try "https://api.clickatell.com/http/sendmsg"
    resp.i = CkHttpResponse::ckCreate()
    If resp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkHttp::ckHttpParams(http,"GET","https://platform.clickatell.com/messages/http/send",queryParams,resp)
    If success = 0
        Debug CkHttp::ckLastErrorText(http)
        CkHttp::ckDispose(http)
        CkJsonObject::ckDispose(queryParams)
        CkHttpResponse::ckDispose(resp)
        ProcedureReturn
    EndIf

    Debug Str(CkHttpResponse::ckStatusCode(resp))
    Debug CkHttpResponse::ckBodyStr(resp)


    CkHttp::ckDispose(http)
    CkJsonObject::ckDispose(queryParams)
    CkHttpResponse::ckDispose(resp)


    ProcedureReturn
EndProcedure