diff --git a/Server/application/api/controller/MessageController.php b/Server/application/api/controller/MessageController.php index 92b8545a..0b449fde 100644 --- a/Server/application/api/controller/MessageController.php +++ b/Server/application/api/controller/MessageController.php @@ -62,6 +62,17 @@ class MessageController extends BaseController // 发送请求获取好友列表 $result = requestCurl($this->baseUrl . 'api/WechatFriend/listWechatFriendForMsgPagination', $params, 'POST', $header, 'json'); $response = handleApiResponse($result); + + // 确保 response 是数组格式 + if (!is_array($response)) { + $response = []; + } + + // 确保 results 字段存在且是数组 + if (!isset($response['results']) || !is_array($response['results'])) { + $response['results'] = []; + } + // 获取同步消息标志 $syncMessages = $this->request->param('syncMessages', true); // 如果需要同步消息,则获取每个好友的消息 @@ -89,10 +100,18 @@ class MessageController extends BaseController // 调用获取消息的接口 $messageResult = requestCurl($this->baseUrl . 'api/FriendMessage/searchMessage', $messageParams, 'GET', $header, 'json'); $messageResponse = handleApiResponse($messageResult); + + // 确保 messageResponse 是数组格式 + if (!is_array($messageResponse)) { + $messageResponse = []; + } + // 保存消息到数据库 if (!empty($messageResponse)) { foreach ($messageResponse as $item) { - $this->saveMessage($item); + if (is_array($item)) { + $this->saveMessage($item); + } } } @@ -159,10 +178,17 @@ class MessageController extends BaseController $result = requestCurl($this->baseUrl . 'api/FriendMessage/searchMessage', $params, 'GET', $header, 'json'); $response = handleApiResponse($result); + // 确保 response 是数组格式 + if (!is_array($response)) { + $response = []; + } + // 保存数据到数据库 if (!empty($response)) { foreach ($response as $item) { - $this->saveMessage($item); + if (is_array($item)) { + $this->saveMessage($item); + } } } @@ -343,13 +369,20 @@ class MessageController extends BaseController $result = requestCurl($this->baseUrl . 'api/ChatroomMessage/searchMessage', $params, 'GET', $header, 'json'); $response = handleApiResponse($result); + // 确保 response 是数组格式 + if (!is_array($response)) { + $response = []; + } + // 保存数据到数据库 if (!empty($response)) { foreach ($response as $item) { - $res = $this->saveChatroomMessage($item); - if(!$res){ - return errorJson('保存群聊消息失败'); - } + if (is_array($item)) { + $res = $this->saveChatroomMessage($item); + if(!$res){ + return errorJson('保存群聊消息失败'); + } + } } }