1

我正在使用 Twilio Rest API 来提取一些使用日志

foreach ($client->account->usage_records->last_month as $record) {
    if ($record->count > 0) {
        $call_record[] = array(
            'category' => $record->category,
            'count' => $record->count,
            'usage' => $record->usage,
            'price'=>$record->price,
            'price_unit'=>$record->price_unit
        );
    }
}

它给了我这个错误: 未捕获的异常“Services_Twilio_RestException”,带有消息“无法将响应正文解码为 JSON。这可能表示 /Users/enmanuelcorvo/development/demos/twilio_usage/vendor/twilio/sdk/Services/Twilio.php:28 中的 500 服务器错误

我尝试将代码包装在这样的 try catch 中

try {
    // Loop over the list of records and echo a property for each one
    foreach ($client->account->usage_records->last_month as $record) {
        if ($record->count > 0) {
            $call_record[] = array(
                'category' => $record->category,
                'count' => $record->count,
                'usage' => $record->usage,
                'price'=>$record->price,
                'price_unit'=>$record->price_unit
            );
        }
    }
} catch (Exception $e) {
   echo($e->getMessage());
}

我能够取回一些使用数据,但不是全部。我缺少诸如呼出电话之类的东西,我确信我们有一些。因此,我认为尝试获取某些类别会中断,这就是它引发错误的原因,但这只是一个非常疯狂的猜测。有什么想法可能导致这种情况吗?

这是堆栈跟踪:

Stack trace:
**0 /Users/enmanuelcorvo/development/demos/twilio_usage/vendor/twilio/sdk/Services/Twilio.php(265): Base_Services_Twilio->_processResponse(Array)
1 /Users/enmanuelcorvo/development/demos/twilio_usage/vendor/twilio/sdk/Services/Twilio.php(236): Base_Services_Twilio->_makeIdempotentRequest(Array, '/2010-04-01/Acc...', 1)
2 /Users/enmanuelcorvo/development/demos/twilio_usage/vendor/twilio/sdk/Services/Twilio/ListResource.php(120): Base_Services_Twilio->retrieveData('/2010-04-01/Acc...', Array, true)
3 /Users/enmanuelcorvo/development/demos/twilio_usage/vendor/twilio/sdk/Services/Twilio/ListResource.php(179): Services_Twilio_ListResource->getPage(1, 50, Array, '/2010-04-01/Acc...')
4 [internal function]: Services_Twilio_ListResource->getPageGenerator(1, 50,  in /Users/enmanuelcorvo/development/demos/twilio_usage/vendor/twilio/sdk/Services/Twilio.php on line 287**
4

2 回答 2

0

Ross McKay 有一篇文章表明问题出在 PHP 的安装上。正如他所说:

该错误是由于没有最新的 CA 根证书包引起的。这通常是一个带有一堆加密签名的文本文件,curl 使用它来验证主机的 SSL 证书。您需要确保您的 PHP 安装具有这些文件之一,并且它是最新的。

只需从此处下载最新的 CA 根证书包

然后在您的php.ini文件中查找名为[curl](在我的情况下靠近底部)的部分,并curl.cainfo根据您放置的位置进行设置cacert.pem,如下所示:

curl.cainfo=D:\Bitnami\wampstack\php\cacert.pem

奇迹般有效!

参考:

http://snippets.webaware.com.au/howto/stop-turning-off-curlopt_ssl_verifypeer-and-fix-your-php-config/

于 2016-04-01T12:02:26.177 回答
0

在我的情况下,错误是由 accountSID 和 AuthToken 输入不正确引起的。确保它们的格式如下:

$AccountSid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
$AuthToken = "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY";

替换为 www.twilio.com/Console 上的 accountSid 和AuthToken

于 2016-05-16T20:49:17.800 回答