Twilio Rest API,发送短信

3
我正在尝试(并且必须)使用Twilio REST API发送短信,而不是使用辅助PHP库。 以下是我的代码:我面临的问题是,它给我一个错误,说91xxxxxxxxxx不是一个有效的电话号码。但我已经在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);
?>

完整的cURL请求转储

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"}"

它确实显示了错误的号码(缺少“+”),但我不知道是哪里出了问题。

您尝试发起一次呼出电话,但您提供的“收件人”电话号码不是有效的电话号码。Twilio接受E164格式(即“+1格式”)的电话号码,或带有任何非数字分隔符的10位美国和加拿大号码的组合。 - user1614526
1个回答

6

有些东西一直缺失,最终解决了。

以下是代码:

<?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);
?>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接