-
-
Save daluu/73815784246a71c01797 to your computer and use it in GitHub Desktop.
<?php | |
//This demo doesn't cover case of network connectivity issues (failure to send HTTP POST to Textbelt) | |
//One could just wrap the request around try/catch exception handling for that | |
//Move the demo function into a separate file to make this into a wrapper library you can require/include and then call from a script | |
// A simple wrapper function to send SMS via Textbelt using curl in PHP | |
function sendSmsToTextbelt($number, $message, $locale="USA"){ | |
//determine the Textbelt URL to POST to... | |
$url = "http://www.textbelt.com/"; | |
switch($locale) { | |
case "International": | |
$url .= "intl"; | |
break; | |
case "Canada": | |
$url .= "canada"; | |
break; | |
case "USA": | |
default: | |
$url .= "text"; | |
} | |
//set up the HTTP POST request to Textbelt | |
$ch = curl_init(); | |
curl_setopt($ch, CURLOPT_URL, $url); | |
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); | |
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); | |
//the 2 fields for POSTing are number & message, add/adjust if you want to customize the other default fields (from, etc.) | |
$fields = array( | |
'number' => urlencode($number), | |
'message' => urlencode($message) | |
); | |
//url-ify the data for the POST | |
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } | |
rtrim($fields_string, '&'); | |
curl_setopt($ch, CURLOPT_POST, count($fields)); | |
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string); | |
//send request and get result | |
$output = curl_exec($ch); | |
curl_close($ch); | |
$result = json_decode($output,true); | |
return $result; | |
} | |
//simple demo (might have some issue parsing result, but the SMS does get sent...) | |
$status = sendSmsToTextbelt("your number here", "Simple PHP demo for Textbelt"); | |
if($status->success){ | |
print "Message sent, but see www.textbelt.com for limitations with service."; | |
//why this particular message? Because textbelt sent message to the carrier's SMS gateway, but we can't guarantee the gateway passes it on to recipient | |
}else{ | |
print $status->message; | |
} | |
?> |
Hello.
I have tried it but i did not get any response (success or failure) and yet the sms was not sent. what could be wrong? is is my carrier gateway not supported?
this is what i tried, i removed the demo part just as you suggested.
success){ print "Message sent, but see www.textbelt.com for limitations with service."; //why this particular message? Because textbelt sent message to the carrier's SMS gateway, but we can't guarantee the gateway passes it on to recipient }else{ print $status->message; } } ?>didnt get any response. i tried using country code, didnt work, used the mobile number without country code didnt work and also tried the country code without the + sign still to no avail. what could be d problem?
thanks
Sorry for late reply, Github didn't notify me of comments to this gist.
You say no get response. What result do you see? I would try a var_dump($status) to see what you get. I would expect you should get some form of output/response (it could be not JSON or some other structure) or the code should have thrown a generic exception back at you.
thanks. will give it a shot and let you know.
thanks again!