Twilio 异常在 codeigniter 中给出错误

Twilio exception giving error in codeigniter

我正在使用 twilio 向 codeigniter 中的号码发送短信。这是我的代码

<?php

defined('BASEPATH') OR exit('No direct script access allowed');
require_once(APPPATH . 'third_party/twilio-php-master/Twilio/autoload.php');

use Twilio\Rest\Client;

class Twilio {
    protected $sid = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    protected $token = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
    protected $from = '+123456789';

    public function sendSMS($number, $text) {
        $data = ['phone' => $number, 'text' => $text];
        return $this->sms($data);
    }

    protected function sms($data) {
        $client = new Client($this->sid, $this->token);
        try {
            $smsObj = $client->messages->create(
                    // the number you'd like to send the message to
                    $data['phone'], array(
                // A Twilio phone number you purchased at twilio.com/console
                "from" => $this->from,
                // the body of the text message you'd like to send
                'body' => $data['text']
                    )
            );

            $returnData['price'] = $smsObj->price;
            $returnData['status'] = $smsObj->status;
            $returnData['sid'] = $smsObj->sid;
            $returnData['to'] = $smsObj->to;
            $returnData['from'] = $smsObj->from;
            $returnData['body'] = $smsObj->body;
            $returnData['direction'] = $smsObj->direction;

            $data = $returnData;
            $status = 'true';
        } catch (Twilio\Exceptions\RestException $e) {
            $data = [];
            $status = 'false due to '.$e->getStatus();
        }
        return [
            "status" => $status,
            "data" => $data
        ];
    }

}

正在发送正确的消息,但我无法收到正确的错误消息。我是这样称呼它的

$this->load->library('Twilio');
$lib = new Twilio();
$response = $lib->sendSMS('+92','Sample SMS');

我收到这条错误消息

An uncaught Exception was encountered
Type: Error

Message: Call to undefined method Twilio\Exceptions\RestException::getStatus()

Filename: E:\xampp\htdocs\binance\application\libraries\Twilio.php

Line Number: 56

Backtrace:

File: E:\xampp\htdocs\binance\application\libraries\Twilio.php
Line: 28
Function: sms

File: E:\xampp\htdocs\binance\application\controllers\admin\Trade.php
Line: 498
Function: sendSMS

File: E:\xampp\htdocs\binance\index.php
Line: 316
Function: require_once

更改此行:

$status = 'false due to '.$e->getStatus();

$status = 'false due to '.$e->getStatusCode();

Exception确实有那个方法,你看看!

https://github.com/twilio/twilio-php/blob/master/Twilio/Exceptions/RestException.php#L27-L29