我在twilio中看到一个示例:https://www.twilio.com/docs/sms/tutorials/how-to-confirm-delivery-php
<?php
$sid = $_REQUEST['MessageSid'];
$status = $_REQUEST['MessageStatus'];
openlog("myMessageLog", LOG_PID | LOG_PERROR, LOG_USER);
syslog(LOG_INFO, "SID: $sid, Status: $status");
closelog();
我不知道上面的代码到底能做什么,但是我想要的是将数据保存到本地数据库中。
我的post方法中的代码(我的statuscallback):
public function smsStatusCallback(Request $request){
$sms = SmsChannel::create([
'number' => $request['MessageSid'],
'body' => $request['MessageStatus'],
]);
}
答案 0 :(得分:1)
我已经找到了解决方案。我在twilio调试器中看到了可能的解决方案:“仔细检查您的 TwiML URL 是否...”。所以我尝试将其作为twiml
public function smsStatusCallback(Request $request){
$response = new Twiml();
$sms = SmsChannel::create([
'sid' => $request['MessageSid'],
'status' => $request['MessageStatus'],
]);
return response($response)
->header('Content-Type', 'text/xml');
}
我已将路由添加到api.php,因为该URL应该可以被twilio访问。
Route::post('sms-status-callback','CommunicationController@smsStatusCallback');