Sample code for 30+ languages & platforms
Tcl

WaTrend Send WhatsApp Text

See more WaTrend Examples

Send a WhatsApp text.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

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

set http [new_CkHttp]

# Use your actual access token instead of 555555555555555555555555555555
set req [new_CkHttpRequest]

CkHttpRequest_AddParam $req "number" "84933313xxx"
CkHttpRequest_AddParam $req "type" "text"
CkHttpRequest_AddParam $req "message" "This is a test message"
CkHttpRequest_AddParam $req "instance_id" "609ACF283XXXX"
CkHttpRequest_AddParam $req "access_token" "555555555555555555555555555555"

# Note: The WaTrend online documentation indicate a POST should be used.
# However, it seems you might actually need to send a GET request.
# It is unclear.  
# If a GET is neeed, you would just send to the URL w/ query params like this:
set sbUrl [new_CkStringBuilder]

CkStringBuilder_Append $sbUrl "https://app.watrend.com/api/send.php?"
CkStringBuilder_Append $sbUrl [CkHttpRequest_getUrlEncodedParams $req]
set responseBodyStr [CkHttp_quickGetStr $http [CkStringBuilder_getAsString $sbUrl]]
# The responseBodyStr contains the JSON response from the server..

CkHttpRequest_put_HttpVerb $req "POST"
CkHttpRequest_put_ContentType $req "application/x-www-form-urlencoded"

set resp [new_CkHttpResponse]

set success [CkHttp_HttpReq $http "https://app.watrend.com/api/send.php" $req $resp]
if {$success == 0} then {
    puts [CkHttp_lastErrorText $http]
    delete_CkHttp $http
    delete_CkHttpRequest $req
    delete_CkStringBuilder $sbUrl
    delete_CkHttpResponse $resp
    exit
}

set sbResponseBody [new_CkStringBuilder]

CkHttpResponse_GetBodySb $resp $sbResponseBody

set respStatusCode [CkHttpResponse_get_StatusCode $resp]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
    puts "Response Header:"
    puts [CkHttpResponse_header $resp]
    puts "Failed."
    delete_CkHttp $http
    delete_CkHttpRequest $req
    delete_CkStringBuilder $sbUrl
    delete_CkHttpResponse $resp
    delete_CkStringBuilder $sbResponseBody
    exit
}

puts [CkHttpResponse_bodyStr $resp]

# Both success and failed responses use 200 status code.

# A success response contains this JSON in the response body:
# {"status":"success", ... }

# A failed response will contain something like this:
# {"status":"error","message":"License Invalidated"}

set jResp [new_CkJsonObject]

CkJsonObject_LoadSb $jResp $sbResponseBody

set status [CkJsonObject_stringOf $jResp "status"]
puts "status: $status"

delete_CkHttp $http
delete_CkHttpRequest $req
delete_CkStringBuilder $sbUrl
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp