2012-09-04 168 views
3

我想(并且必须)使用twilio rest api to send sms而不是使用助手php库。 下面是我的代码:我面临的问题是,它给我的错误,91xxxxxxxxxx不是一个有效的电话号码。但是,我通过电话号码以“+”作为前缀来休息api。twilio rest api,发送短信

我正在使用试用帐户,并使用twilio验证了该号码,并使用帮助程序库进行了测试。

<?php 
$url = "https://api.twilio.com/2010-04-01/Accounts/MYID/SMS/Messages.json"; 
$from = "MY_TWILIO_NUMBER without + prefix"; 
$to = "+91xxxxxxxxxx"; // twilio trial verified number 
$body = "using twilio rest api"; 
$id = "MY_ID"; 
$token = "MY_TOKEN"; 
$data = array (
     'From' => $from, 
     'To' => $to, 
     'Body' => $body, 

    ); 
$post = ''; 
foreach ($data as $parameter => $value) 
{ 
    $post .= "&$parameter=$value"; 
} 
$x = curl_init($url); 
curl_setopt($x, CURLOPT_POST, true); 
curl_setopt($x, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($x, CURLOPT_USERPWD, "$id:$token"); 
curl_setopt($x, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($x, CURLOPT_POSTFIELDS, $post); 
$y = curl_exec($x); 
var_dump($y); 
curl_close($x); 
?> 

卷曲请求

string(157) "{"status":400,"message":"The 'To' number 91xxxxxxxxxx is not a valid phone number.","code":21211,"more_info":"http://www.twilio.com/docs/errors/21211"}" 

它做的完全转储说,错号(缺少“+”),但我没有得到地方。

+0

您尝试启动出站的电话,但是你提供的“到”手机号不是一个有效的电话号码。 Twilio接受E164格式(即“+1格式”)的电话号码,或者使用任意非数字分隔符组合的10位美国和加拿大号码。 – user1614526

回答

5

那么错过了什么,所以终于解决了。

这里的代码

<?php 
$url = "https://api.twilio.com/2010-04-01/Accounts/MYID/SMS/Messages.json"; 
$from = "MY_TWILIO_NUMBER without + prefix"; 
$to = "+91xxxxxxxxxx"; // twilio trial verified number 
$body = "using twilio rest api"; 
$id = "MY_ID"; 
$token = "MY_TOKEN"; 
$data = array (
     'From' => $from, 
     'To' => $to, 
     'Body' => $body, 

    ); 
$post = http_build_query($data); 
$x = curl_init($url); 
curl_setopt($x, CURLOPT_POST, true); 
curl_setopt($x, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($x, CURLOPT_USERPWD, "$id:$token"); 
curl_setopt($x, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($x, CURLOPT_POSTFIELDS, $post); 
var_dump($post); 
$y = curl_exec($x); 
var_dump($y); 
curl_close($x); 
?>