【问题标题】:Twilio API getting the recording of a callTwilio API 获取通话录音
【发布时间】:2015-08-17 16:39:06
【问题描述】:

我正在用 PHP 测试 Twilio 的 API。目前我有一个工作模块,允许我拨打电话并记录它们。现在我正在编写一个模块来报告这些调用。

下面的代码应该获取经过过滤的呼叫列表,并向我的浏览器显示有关该呼叫的一些信息,以及指向录音的链接。此脚本获取通话记录。对于每个呼叫,它会调用一个函数来获取属于当前呼叫的录音。问题是,它每次都获取相同的录音。

    $version = '2010-04-01';

    // Set our AccountSid and AuthToken
    $sid = 'abc123';
    $token = 'fbc123';

    // Your Account Sid and Auth Token from twilio.com/user/account
    $client = new Services_Twilio($sid, $token,$version);
    $dt = date("Y-m-d");
    // Loop over the list of calls and echo a property for each one
    foreach ($client->account->calls->getIterator(0, 50, array(
            "Status" => "completed",
            "StartTime>" => "2015-08-04",
            "StartTime<" => "$dt"


        )) as $call
    ) {
        echo $call->sid.", ".$call->duration.", $".abs($call->price)." &nbsp; ".getRecording($call->sid)."<br/>";


    }

    function getRecording($callsid){

        // Twilio REST API version
        $version = '2010-04-01';

        // Set our AccountSid and AuthToken
        $sid = 'abc123';
        $token = 'fbc123';
        $client = new Services_Twilio($sid, $token);

        // Loop over the list of recordings and echo a property for each one
        foreach ($client->account->recordings->getIterator(0, 50, array(
                "callSid" => '$callsid'
            )) as $recording
        ) {
            return "&nbsp; &nbsp; ->".$callsid." <strong><a href='http://api.twilio.com".$recording->uri."'>Audio</a></strong>";
        }
    }

输出是这样的(请注意每个音频文件都有相同的 URL):

CAab40cacf1690a86e604ba0f527153887, 1, $0.015 &nbsp; &nbsp; &nbsp; ->CAab40cacf1690a86e604ba0f527153887 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAaf5629839a6d2095067a04359dc13809, 14, $0.015 &nbsp; &nbsp; &nbsp; ->CAaf5629839a6d2095067a04359dc13809 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAa8610e49f6e49a71c8bf3e02d3e974f1, 11, $0.015 &nbsp; &nbsp; &nbsp; ->CAa8610e49f6e49a71c8bf3e02d3e974f1 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CA478704a99883f919a9932b52c6971cf7, 21, $0.015 &nbsp; &nbsp; &nbsp; ->CA478704a99883f919a9932b52c6971cf7 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CA00b2f9db896e3b8cfc82c93df5c8e11e, 9, $0.015 &nbsp; &nbsp; &nbsp; ->CA00b2f9db896e3b8cfc82c93df5c8e11e <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAcbd21d8dd3de1c06ce1f393c987bc6c7, 19, $0.015 &nbsp; &nbsp; &nbsp; ->CAcbd21d8dd3de1c06ce1f393c987bc6c7 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CAffb1d60f5f48b870af65329d7d4ca48f, 4, $0.015 &nbsp; &nbsp; &nbsp; ->CAffb1d60f5f48b870af65329d7d4ca48f <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>
CA44fd1b5b9ef347f730d068abafffbd73, 15, $0.015 &nbsp; &nbsp; &nbsp; ->CA44fd1b5b9ef347f730d068abafffbd73 <strong><a href='http://api.twilio.com/2010-04-01/Accounts/acctnumber/Recordings/REe9a199dec7376ef94d6af256749e7d81'>Audio</a></strong>

【问题讨论】:

    标签: twilio twilio-php


    【解决方案1】:

    这里是 Twilio 开发者宣传员。

    查询的parameters 区分大小写,因此您需要将callSid 中的c 大写。用单引号括起来的字符串也不能替代它。

    foreach ($client->account->recordings->getIterator(0, 50, array(
                    "callSid" => '$callsid'
    

    foreach ($client->account->recordings->getIterator(0, 50, array(
                    "CallSid" => $callsid
    

    如果我能提供更多帮助,请告诉我!

    编辑:为了澄清正在发生的事情,由于查询参数关闭并且每次获取集合中的第一个并返回它,因此请求获取帐户中的所有录音。从而使它们都相同。

    【讨论】:

    • 谢谢先生。你成功了。
    • 请问您使用哪个版本的 API @GRY ?当我尝试你的代码时,我宁愿有一个Fatal error: Call to undefined method Twilio\Rest\Api\V2010\Account\RecordingList::getIterator() 谢谢
    猜你喜欢
    • 1970-01-01
    • 2017-12-07
    • 1970-01-01
    • 2019-12-17
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多