首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >验证调用SID

验证调用SID
EN

Stack Overflow用户
提问于 2015-08-13 07:12:09
回答 1查看 175关注 0票数 1

在我的DB中,我有这样的调用SID,在Twilio中不存在。这是另一个问题为什么,但这是一个事实。

以下代码:

代码语言:javascript
复制
    $call = $client->account->calls->get(
        'YYYYYYYYYYYY7'
    );

    var_dump($call->price);

抛出:

代码语言:javascript
复制
Services_Twilio_RestException

The requested resource /2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXX/Calls/YYYYYYYYYYYY7.json was not found

但以下代码:

代码语言:javascript
复制
    $call = $client->account->calls->get(
        'YYYYYYYYYYYY7'
    );

    var_dump($call->sid);

工作良好:

代码语言:javascript
复制
string(34) "CAYYYYYYYYYYYYYYYYYY7"

如果我使用有效的电话给SID,并执行以下操作:

代码语言:javascript
复制
    $call = $client->account->calls->get(
        'CASSSSSSSSSSSSSSSSSSSSSSS'
    );

    var_dump(isset($call->price));
    echo '<br />';
    var_dump(!empty($call->duration));
    echo '<br />';
    var_dump($call->price);
    echo '<br />';
    var_dump($call->duration);

我去拿这个:

代码语言:javascript
复制
bool(false) 
bool(false) 
string(8) "-0.01400" 
string(2) "32"

问题

Twilio是这样编写的,因此实际上无法在代码失败之前检查调用项是否具有某些属性。

当某些调用(或任何其他调用)可能不存在时,适当的代码应该准备好处理这种情况。

因此,我有一个问题:如何使用Twilio 验证调用SID

https://www.twilio.com/docs/php/install

P.S.

我当然做了

代码语言:javascript
复制
    function validateCallSID($callsid) {
        $ch = curl_init("https://api.twilio.com/2010-04-01/Accounts/" .  TWILIO_SID . "/Calls/" . $callsid . ".json");
        curl_setopt($ch, CURLOPT_USERNAME, TWILIO_SID);
        curl_setopt($ch, CURLOPT_PASSWORD, TWILIO_ST);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $json = curl_exec($ch);
        if (!empty($json)) {
            $decoded = json_decode($json, true);
            if (!empty($decoded['sid'])) {
                return true;
            }
        }
        return false;
    }

但是我确信,像Twilio这样的大公司开发的Twilio当然应该有一个内置的方式来实现它,但我只是没有注意到。

EN

回答 1

Stack Overflow用户

发布于 2015-08-13 09:02:44

两位开发人员在这里传道。

Twilio库都是基于数组返回的属性构建为动态的,并且很懒,因此在需要时才进行API调用。这就解释了为什么isset($call->price) 属性返回false,但是有一个值。

我对SID的电话很感兴趣,虽然它没有价格,你介意把它发送到philnash@twilio.com,这样我就可以看看那里发生了什么。我可以看看如何修复API中的错误消息,因为它不是您所展示的404。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31981753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档