Twilio PHP会话消息read方法按官方语法排序报错如何解决
问题原因
你遇到的参数类型报错是因为当前使用的Twilio PHP SDK版本与官方示例的版本参数定义不一致:你使用的版本中MessageList::read()方法第一个参数要求传入int类型的结果条数限制,第二个参数才接收筛选、排序相关的配置数组,你将配置数组放在了第一个参数位因此触发类型错误。
解决方法
方法1:调整参数顺序(适配当前SDK版本)
直接交换两个参数的位置即可实现倒序拉取20条消息:
$messages = $twilio_client->conversations->v1->conversations($conversation_channel_sid) ->messages->read(20, ["order" => "desc"]);
方法2:本地排序(兼容所有SDK版本)
如果调整参数顺序后仍不支持传排序配置,可以拉取消息后在本地做排序,示例实现如下:
// 先拉取最多20条消息 $messages = $twilio_client->conversations->v1->conversations($conversation_channel_sid) ->messages->read(20); // 按消息创建时间倒序排序 usort($messages, function($a, $b) { return strtotime($b->dateCreated) - strtotime($a->dateCreated); });
消息筛选实现
如果需要额外筛选消息,遍历消息集合匹配对应字段即可,示例筛选指定作者的消息:
$targetMessages = []; foreach ($messages as $msg) { // 可根据需求替换为body、dateCreated等字段的判断规则 if ($msg->author === '目标用户标识') { $targetMessages[] = $msg; } }
内容的提问来源于stack exchange,提问作者udaya krishna shrestha
相关产品推荐
相关产品推荐

