This blog post has been superseded with our website documentation
In our REST API specification document we saw, in general terms, how to make a request to our REST SMS API and how to deal with the response. Here we provide you with some more concrete examples that you can copy & paste!
NOTE: You will want to add additional error checking to the examples below.
In each of the languages used here we create a request, send it, receive the response, and parse its contents.
PHP
Example for getting the number of credits:
$url = 'http://api.textmarketer.co.uk/services/rest/credits';
$username = 'myAPIusername'; // CHANGE THIS!!!
$password = 'myAPIpassword'; // CHANGE THIS!!!
$url = "$url?username=$username&password=$password";
// we're using the curl library to make the request
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
$responseBody = curl_exec($curlHandle);
$responseInfo = curl_getinfo($curlHandle);
curl_close($curlHandle);
// deal with the response
if ($responseInfo['http_code']==200)
{
$xml_obj = simplexml_load_string($responseBody);
$credits = (int) $xml_obj->credits;
// do something with the result
echo $credits;
} else {
// handle the error
var_dump($responseBody);
}
Example for getting the list of delivery reports:
$url = 'http://api.textmarketer.co.uk/services/rest/deliveryReports';
$username = 'myAPIusername'; // CHANGE THIS!!!
$password = 'myAPIpassword'; // CHANGE THIS!!!
$url = "$url?username=$username&password=$password";
// we're using the curl library to make the request
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
$responseBody = curl_exec($curlHandle);
$responseInfo = curl_getinfo($curlHandle);
curl_close($curlHandle);
// deal with the response
if ($responseInfo['http_code']==200)
{
$xml_obj = simplexml_load_string($responseBody);
$atts = $xml_obj->reports->attributes();
$num_reports = (int) $atts->quantity;
if ($num_reports > 0)
{
echo "$num_reports reports\n";
$reports = array();
foreach ($xml_obj->reports->report as $xml_report)
{
$atts = $xml_report->attributes();
$name = (string) $atts->name;
$updated = (string) $atts->last_updated;
$reports[] = array('name'=>$name, 'modified'=>$updated);
}
// do something with the report details
var_dump($reports);
} else {
echo 'No reports available';
}
} else {
// handle the error
var_dump($responseBody);
}
Example for getting the details of a particular delivery report:
// TODO the URL will change according to the delivery report to retrieve...
$url = 'http://api.textmarketer.co.uk/services/rest/deliveryReport/GatewayAPI_09-02-10';
$username = 'myAPIusername'; // CHANGE THIS!!!
$password = 'myAPIpassword'; // CHANGE THIS!!!
$url = "$url?username=$username&password=$password";
// we're using the curl library to make the request
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
$responseBody = curl_exec($curlHandle);
$responseInfo = curl_getinfo($curlHandle);
curl_close($curlHandle);
// deal with the response
if ($responseInfo['http_code']==200)
{
$xml_obj = simplexml_load_string($responseBody);
$reportRows = array();
foreach ($xml_obj->report->reportrow as $xml_reportRow)
{
$atts = $xml_reportRow->attributes();
$mobile = (string) $atts->mobile_number;
$updated = (string) $atts->last_updated;
$msgID = (int) $atts->message_id;
$status = (string) $atts->status;
$reports[] = array('mobile'=>$mobile, 'modified'=>$updated, 'messageID'=>$msgID, 'status'=>$status);
}
// do something with the report details
var_dump($reports);
} else {
// handle the error
var_dump($responseBody);
}
Example for sending an SMS:
$url = 'http://api.textmarketer.co.uk/services/rest/sms';
$username = 'myAPIusername'; // CHANGE THIS!!!
$password = 'myAPIpassword'; // CHANGE THIS!!!
$data = array('message'=>'hello','mobile_number'=>'447777777777', 'originator'=>'me',
'username'=>$username, 'password'=>$password);
$data = http_build_query($data, '', '&');
// we're using the curl library to make the request
$curlHandle = curl_init();
curl_setopt($curlHandle, CURLOPT_URL, $url);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $data);
curl_setopt($curlHandle, CURLOPT_POST, 1);
$responseBody = curl_exec($curlHandle);
$responseInfo = curl_getinfo($curlHandle);
curl_close($curlHandle);
// deal with the response
if ($responseInfo['http_code']==200)
{
$xml_obj = simplexml_load_string($responseBody);
// do something with the result
echo "Message ID: $xml_obj->message_id\n";
echo "Credits used: $xml_obj->credits_used\n";
var_dump($responseBody);
} else {
// handle the error
var_dump($responseInfo);
var_dump($responseBody);
}
Example for transferring credits:
?>
For more details on creating REST requests in PHP, see here.