php - Twilio 异常在 codeigniter 中给出错误

标签 php codeigniter exception twilio twilio-php

我正在使用 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

关于php - Twilio 异常在 codeigniter 中给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52813896/

相关文章:

php - 古吉拉特语字体显示有正方形和问号,如何删除这些特殊字符?

Java:如何在吞下异常后调用先前的方法

node.js - 在 Promise 中引发时未显示异常

php - Docker - 启动 phpunit testsuite 最简单的方法是什么

php - CodeIgniter 中的 Seo 友好 url

php - Doctrine2 自动生成类中的自定义函数

java - 读取有错误的CSV文件并将 'bad lines'打印到另一个文件Java

php - 从 Windows 中在 PHP 中创建 UNIX 安全测试

php - Sphinx 未知键名 'WHERE'

php - 处理内存限制