代码之家  ›  专栏  ›  技术社区  ›  Kapitan Teemo

如何使用php laravel在twilio中处理我的sms statuscallback?

  •  1
  • Kapitan Teemo  · 技术社区  · 8 年前

    我在《暮光之城》中看到一个例子: 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方法(my statuscallback)中的代码:

    public function smsStatusCallback(Request $request){
    
       $sms = SmsChannel::create([
          'number' => $request['MessageSid'],
          'body' => $request['MessageStatus'], 
       ]);
    }
    
    1 回复  |  直到 8 年前
        1
  •  1
  •   Kapitan Teemo    8 年前

    我已经找到了解决办法。我在twilio调试器中看到了可能的解决方案:“仔细检查 TwiML URL 不是。所以我试着把它做成一根细枝

    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,因为twilio应该可以访问这个URL。

    Route::post('sms-status-callback','CommunicationController@smsStatusCallback');