#include "hbcurl.ch"
#define ACCOUNT_SID "XxxxxxxxXxXXXX"
#define AUTH_TOKEN "Twilio-Acc-Token
#define TEL_FROM "YourTwilioNumber"
#define TEL_TO "555-555-5555"
function main()
Local hCurl
Local nError, httpcode
Local cUrl := "https://api.twilio.com/2010-04-01/Accounts/" + ACCOUNT_SID + "/Messages.json"
Local cPostFields := 'To=' + TEL_TO +;
"&From=" + TEL_FROM +;
"&Body=" + Time() + " SMS From TestTwilio.exe"
logdata( "trace.log", Replicate( "-", 80 ) )
logdata( "Trace.log", curl_version() )
logdata( "Trace.log", cPostFields )
curl_global_init()
if ! empty( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_POST, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
curl_easy_setopt( hcurl, HB_CURLOPT_POSTFIELDS, cPostFields )
curl_easy_setopt( hCurl, HB_CURLOPT_USERPWD, ACCOUNT_SID + ':' + AUTH_TOKEN )
curl_easy_setopt( hCurl, HB_CURLOPT_DL_BUFF_SETUP )
curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, 1 )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .F. )
nError := curl_easy_perform( hCurl )
curl_easy_getinfo( hCurl, HB_CURLINFO_RESPONSE_CODE, @httpcode )
logdata( "trace.log", { "nError = ", nError, ValType( nError ), "httpcode =", httpcode, ValType( httpcode ) } )
if nError = HB_CURLE_OK
logdata( "Trace.log", "SMS sent succesffully" )
logdata( "Trace.log", curl_easy_dl_buff_get( hCurl ) )
elseif httpcode != 200 .AND. httpcode != 201
logdata( "Trace.log", { "SMS send failed, HTTP Status Code ", httpcode } )
else
logdata( "Trace.log", curl_easy_strerror( nError ) )
endif
endif
curl_global_cleanup()
RETURN NIl