我正在使用TWILIO SMS,我正在使用试用帐户,一切都在使用纯PHP库,但我在使用CURL和PHP时遇到了问题
require "Services/Twilio.php"; $AccountSid = "SANDBOX_ACC_ID"; $AuthToken = "SANDBOX_TOKEN"; $client = new Services_Twilio($AccountSid, $AuthToken); $message = $client->account->messages->create(array( "From" => "+MAGICNUMBER", "To" => "+XXXXXXXXXX",// twilio trial verified number "Body" => "Test message 2 from Fedrick!", )); // Display a confirmation message on the screen echo "testing with php message {$message->sid}";
纯php输出:
testing with php message SMxxxxxxxxxxxxxxxxxxxx
代码我尝试过使用CURL和PHP(不能正常工作)
$url = "https://api.twilio.com/2010-04-01/Accounts/SANDBOX_ACC_ID/SMS/Messages.json"; $from = "+MAGICNUMBER"; $to = "+XXXXXXXXXX"; // twilio trial verified number $body = "using twilio rest api from Fedrick"; $id = "SANDBOX_ACC_ID"; $token = "SANDBOX_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);
输出使用Curl php:
bool(false)
我在curl代码中做了什么错...有没有使用纯PHP库的任何解决方案,我想使用简短的代码,就像上面的CURL代码一样
首先,由于API的URL是安全的,因此您必须通过将CURLOPT_SSL_VERIFYPEER
选项设置为禁用SSL对等验证false
.
此外,根据API文档,请求的URL依赖于帐户,即应根据您的帐户沙箱ID构建:
https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/Messages
所以代码应如下所示:
$id = "SANDBOX_ACC_ID"; $token = "SANDBOX_TOKEN"; $url = "https://api.twilio.com/2010-04-01/Accounts/$id/SMS/Messages"; $from = "+MAGICNUMBER"; $to = "+XXXXXXXXXX"; // twilio trial verified number $body = "using twilio rest api from Fedrick"; $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_SSL_VERIFYPEER, false); curl_setopt($x, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($x, CURLOPT_USERPWD, "$id:$token"); curl_setopt($x, CURLOPT_POSTFIELDS, $post); $y = curl_exec($x); curl_close($x); var_dump($post); var_dump($y);