如何使用PHP Laravel在twilio中处理我的短信statuscallback?

时间:2018-07-26 07:57:29

标签: twilio twilio-api twilio-php

我在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'], 
   ]);
}

1 个答案:

答案 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');