What is wrong with my jQuery and twilio Code?

597 views Asked by At

I went to these two ( 1 , 2 ) site for one of my projects.
I'm a noob at PHP. So I'm not really sure how to make this work.
I once got a SSL certificate error while trying to test it. My SMS are not getting sent.
I don't get any kind of reply or alert or something when I'm testing it with my HTML.
Please help me if there's any twilio and PHP expert are out there. this the form I'm using in HTML

<form id="frm" name="frm">
   <div class="form-group">
      <label for="tel">Phone:</label>
      <input type="tel" class="form-control" id="phoneNumber" name="phoneNumber" required>
   </div>
   <button class="btn" type="submit" id="submit">Submit</button>
</form>

My script

$("#frm").submit(function(e){
   e.preventDefault();
   $.post("sendnotifications.php", $("#frm").serialize(),
   function(data){
   if(data.sms_sent == 'OK'){
   alert("Message Sent");
   } else {
   alert("Message Not Sent");
   }
   }, "json");
});

and here is my sendnotifications.php file

<?php/* Send an SMS using Twilio. You can run this file 3 different ways:


*
 * - Save it as sendnotifications.php and at the command line, run
 * php sendnotifications.php
 *
 * - Upload it to a web host and load mywebhost.com/sendnotifications.php
 * in a web browser.
 * - Download a local server like WAMP, MAMP or XAMPP. Point the web root
 * directory to the folder containing this file, and load
 * localhost:8888/sendnotifications.php in a web browser.
 */

// Step 1: Download the Twilio-PHP library from twilio.com/docs/libraries,
 // and move it into the folder containing this file.
 require "Services/Twilio.php";

// Step 2: set our AccountSid and AuthToken from www.twilio.com/user/account
 $AccountSid = "ACexxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 $AuthToken =  "fafyyyyyyyyyyyyyyyyyyyyyyyyyyyyy";

// Step 3: instantiate a new Twilio Rest Client
 $http = new Services_Twilio_TinyHttp(
    'https://api.twilio.com',
    array('curlopts' => array(
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_SSL_VERIFYHOST => 2,
    ))
);

 $client = new Services_Twilio($sid, $token, "2010-04-01", $http);

// Step 4: Get phone number from the test-sms form
 $phone=$_POST["phoneNumber"];

// Step 5: Create SMS
 $sms = $client->account->sms_messages->create(

// Change the 'From' number below to be a valid Twilio number
 // that you've purchased, or the (deprecated) Sandbox number
 "717-xxx-xxxx",

// the number we are sending to - Any phone number
 $phone,

// the sms body
 "Get our app now: http://example.com/ourapp"
 );

// Display a confirmation message on the screen
 $sms_check='OK'; //Use Twilio's callback here
 $return_json = '{"sms_sent":"' . $email_check . '"}';

echo $return_json;
?>  

Please someone tell me what do I need to change to get my site working.
I have changed the $http in sendnotifications.php after going to the github faq of twilio to prevent the ssl certificate error. What else do I need to do??

Edit: I have solved the problem using the below code.

    <?php 
// Step 1: Download the Twilio-PHP library from twilio.com/docs/libraries,
// and move it into the folder containing this file.
 require_once "Services/Twilio.php";
// Step 2: set our AccountSid and AuthToken from www.twilio.com/user/account
 $AccountSid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 $AuthToken = "04dxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 // Twilio REST API version
 $version = "2010-04-01";
// Step 3: instantiate a new Twilio Rest Client
 $client = new Services_Twilio($AccountSid, $AuthToken, $version);
// Step 4: Get phone number from the test-sms form
 $phone=$_POST["phoneNumber"];

try{
$message = $client->account->messages->create(array(
    "From" => "+1xxxxxxxxxx",
    "To" => $phone,
    "Body" => "This code is for testing!",
));
$sms_check='OK';
}
catch (Exception $e) {
    $sms_check = 'Error';
}
$return_json = '{"sms_sent":"' . $sms_check . '"}';
echo $return_json;
?>

But I'm now getting an error in my server..
The SMS is getting sent but this error shows up..

Error: Could not decode response body as JSON. This likely indicates a 500 server error

Does anyone know any way of solving this problem.. My website is hosted on altervista.

Edit I have solved the 500 error

By replacing the tinyHttp.php file inside "Services/Twilio"with a edited tinyhttp.php file from github.. The link of the edited github file is in the comment section..

1

There are 1 answers

1
Michael St Clair On

Current Issue:

Try this

require_once "Services/Twilio.php";
$AccountSid = "ACexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; 
$AuthToken = "fafxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$client = new Services_Twilio($$AccountSid, $AuthToken);

$phone=$_POST["phoneNumber"];

try{
$client->account->messages->sendMessage("+17xxxxxx", $phone, "This code is for testing an android app website!! Get our app now: http://bit.ly/ourapp");
} catch (Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

Past Issue:

It looks like you weren't consistent with your variables. $sid and $token might not be set, you used $AccountSid and $AuthToken to set your variables. Try this

$client = new Services_Twilio($AccountSid, $AuthToken, "2010-04-01", $http);