$sendID, 'senderNickname' => $senderNickname, 'senderFaceURL' => $senderFaceURL, 'senderPlatformID' => $senderPlatformID, 'contentType' => $contentType, 'sessionType' => $sessionType, 'isOnlineOnly' => $isOnlineOnly, 'notOfflinePush' => $notOfflinePush, 'ex' => $ex ]; // 根据会话类型设置recvID或groupID if ($sessionType == 1 && !empty($recvID)) { $data['recvID'] = $recvID; } elseif ($sessionType == 2 && !empty($groupID)) { $data['groupID'] = $groupID; } // 设置消息内容 if (empty($content)) { $data['content'] = ['text' => '']; } else { $data['content'] = $content; } // 设置发送时间,如果有的话 if ($sendTime > 0) { $data['sendTime'] = $sendTime; } // 设置离线推送信息,如果有的话 if (!empty($offlinePushInfo)) { $data['offlinePushInfo'] = $offlinePushInfo; } return Utils::send(Url::$sendMsg, $data, '发送消息失败', $adminToken); } /** * 批量发送消息 * @param string $sendID 发送者ID * @param string $senderNickname 发送者昵称 * @param string $senderFaceURL 发送者头像 * @param int $sessionType 会话类型 * @param int $contentType 消息类型 * @param string $content 消息内容 * @return array */ public function batchSendMsg(string $sendID, string $senderNickname, string $senderFaceURL, int $sessionType, int $contentType, string $content): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'senderPlatformID' => 0, 'sendID' => $sendID, 'senderNickname' => $senderNickname, 'senderFaceURL' => $senderFaceURL, 'sessionType' => $sessionType, 'contentType' => $contentType, 'content' => ['text' => $content] ]; return Utils::send(Url::$batchSendMsg, $data, '批量发送消息失败', $adminToken); } /** * 清空用户消息 * @param string $userID 用户ID * @return array */ public function clearMsg(string $userID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$clearMsg, ['userID' => $userID], '清空用户消息失败', $adminToken); } /** * 根据seq列表删除消息 * @param string $userID 用户ID * @param string $conversationID 会话ID * @param array $seqs seq列表 * @return array */ public function delMsg(string $userID, string $conversationID, array $seqs): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'userID' => $userID, 'conversationID' => $conversationID, 'seqs' => $seqs ]; return Utils::send(Url::$delMsg, $data, '删除消息失败', $adminToken); } /** * 撤回消息 * @param string $conversationID 会话ID * @param string $seq 消息seq * @param string $userID 用户ID * @return array */ public function revokeMessage(string $conversationID, string $seq, string $userID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'conversationID' => $conversationID, 'seq' => intval($seq), 'userID' => $userID ]; return Utils::send(Url::$revokeMessage, $data, '撤回消息失败', $adminToken); } /** * 发送业务通知 * @param string $sendID 发送者ID * @param string $recvID 接收者ID * @param string $title 通知标题 * @param string $content 通知内容 * @param string $notificationUrl 通知点击跳转链接 * @param string $ex 扩展字段 * @return array */ public function sendBusinessNotification(string $sendID, string $recvID, array $data): array { // 获取管理员token $data = [ 'sendUserID' => $sendID, 'recvUserID' => $recvID, 'recvGroupID' => '', 'key' => md5(time()), 'data' =>json_encode($data), 'sendMsg' => true, 'reliabilityLevel' => 1, ]; return Utils::send(Url::$sendBusinessNotification, $data, '发送业务通知失败'); } /** * 获取用户所有会话 * @param string $userID 用户ID * @return array */ public function getAllConversations(string $userID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); return Utils::send(Url::$getAllConversations, ['userID' => $userID], '获取用户所有会话失败', $adminToken); } /** * 根据会话ID获取会话 * @param string $userID 用户ID * @param string $conversationID 会话ID * @return array */ public function getConversation(string $userID, string $conversationID): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'userID' => $userID, 'conversationID' => $conversationID ]; return Utils::send(Url::$getConversation, $data, '获取会话失败', $adminToken); } /** * 根据会话ID列表获取会话 * @param string $userID 用户ID * @param array $conversationIDs 会话ID列表 * @return array */ public function getConversations(string $userID, array $conversationIDs): array { // 获取管理员token $adminToken = Utils::getAdminToken(); $data = [ 'userID' => $userID, 'conversationIDs' => $conversationIDs ]; return Utils::send(Url::$getConversations, $data, '获取会话列表失败', $adminToken); } }