我去了这两个(1,2)网站进行了我的一个项目
我是PHP的菜鸟。所以我不确定如何使这项工作
我在尝试测试时遇到了SSL证书错误。我的短信没有收到。
当我使用HTML对其进行测试时,我不会得到任何回复或警告。
如果有twilio and PHP专家在那里,请帮助我。
这是我在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>
我的剧本
$("#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");
});
这是我的sendnotifications.php文件
<?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;
?>
请有人告诉我,为了让我的网站有效,我需要做些什么改变 我在转到twilio的github faq之后更改了sendnotifications.php中的$ http以防止ssl证书错误。还有什么我需要做的?
编辑:我已使用以下代码解决了问题。
<?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;
?>
但我现在在我的服务器上收到错误..
SMS正在发送,但此错误显示..
错误:无法将响应正文解码为JSON。这可能表示500服务器错误
有谁知道解决这个问题的方法..我的网站托管在altervista上。
编辑我已解决了500错误
用github中编辑的tinyhttp.php文件替换&#34; Services / Twilio&#34;中的tinyHttp.php文件。编辑后的github文件的链接在评论部分..
答案 0 :(得分:2)
当前问题:
试试这个
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();
}
过去的问题:
看起来你与变量不一致。可能未设置$sid
和$token
,您使用$AccountSid
和$AuthToken
来设置变量。试试这个
$client = new Services_Twilio($AccountSid, $AuthToken, "2010-04-01", $http);