如何用Twilio PHP SDK获取呼叫队列成员及等待时长
解决Twilio PHP SDK获取队列所有成员及等待时长的问题
你当前的问题出在使用了fetch()方法——这个方法是用来获取单个队列成员的,而非批量获取所有成员。要获取队列中的所有成员列表,应该使用read()方法,而非传入空参数调用fetch()。
正确的代码示例
$twilio = new Client($sid, $token); // 指定目标队列SID,调用read()获取所有成员 $queueMembers = $twilio->queues('QUXXXXXXX')->members->read(); // 遍历所有成员,提取所需信息 foreach ($queueMembers as $member) { echo "呼叫SID: " . $member->callSid . "\n"; echo "等待时长(秒): " . $member->waitTime . "\n"; echo "当前位置: " . $member->position . "\n"; echo "-------------------------\n"; }
为什么原始代码无法正常提取数据
当你调用members('')->fetch()时,Twilio SDK会尝试发起获取单个成员的请求(即使参数为空),返回的响应结构并非标准的列表格式。虽然你通过var_dump看到了queue_members元素,但这并非SDK设计的标准访问方式,直接操作这个内部元素会引发兼容性问题。
使用read()方法会返回Twilio\Rest\Api\V2010\Account\Queue\MemberList对象,它实现了迭代器接口,可直接用foreach遍历,每个元素都是MemberInstance对象,你能通过标准属性访问(如$member->callSid)获取所需字段。
内容的提问来源于stack exchange,提问作者Patrick
相关产品推荐
相关产品推荐

