>[danger] v1.2.3 开始已经并入主版本,该版本已经舍弃!!! >[info] 什么是 whisper 客服的 API 版本呢? 因为在有些使用场景之下,无法使用 websocekt 长连接与 客服系统通信(比如 对接微信的客服系统)。此时就需要我们通过 http 协议往客服系统推送消息,从而让让客服系统工作起来。 >[info] API 版本是怎么工作的? 1、首先 找到 vendor 下的 web-msg-sender ,如果你是 windows 系统,双击 start_for_win.bat 启动。 ![](https://box.kancloud.cn/cdca82680deb5733c4263fd9fc5b0b99_673x435.png) 如果是 linux 系统,通过如下的 命令: ``` php start.php start -d ``` 2、服务启动之后,默认启动一个 http 服务器,且监听 2121 端口,这个端口就是你推送 客户端消息的接口。 ``` <?php $to_uid = "KF1"; $content = [ 'id' => 2, "name" => "jack2", "message" => "你们好啊", "avatar" => "//tva2.sinaimg.cn/crop.0.0.512.512.180/005LMAegjw8f2bp9qg4mrj30e80e8dg5.jpg", "ip" => "58.240.254.162" ]; $push_api_url = "http://127.0.0.1:2121/"; $post_data = [ "type" => "publish", "content" => json_encode($content), "to" => $to_uid, ]; $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $push_api_url ); curl_setopt ( $ch, CURLOPT_POST, 1 ); curl_setopt ( $ch, CURLOPT_HEADER, 0 ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data ); curl_setopt ($ch, CURLOPT_HTTPHEADER, array("Expect:")); $return = curl_exec ( $ch ); curl_close ( $ch ); var_export($return); ``` >[danger] $to_uid 是客服的id 3、如何确定推送给哪个客服呢? ws_users 表有一个 online字段,在客服登录之后,该字段是 3,客服退出的时候,该字段是 2。 客户端可以根据这个字段,决定把消息推送给哪个客服。 >[danger] 在客服的id前拼装 大写的 KF 两个字母 4、客服工作平台还跟whisper 一样,不需要你改动任何的东西,还是在客服工作台工作。 >[info] 客服发送的消息如何推送给客户端 ? whisper.js 的第 77 - 84 行,有如下的代码 ``` // 你的发送接口 API $.post("http://localhost/test/fenpei/log.php", { type: 'chatMessage', data: {to_id: uid, to_name: uname, content: msg, from_name: uinfo.username, from_id: uinfo.id, from_avatar: uinfo.avatar} }, function (res) { }); ``` 相信你一眼就能看明白,只要你填写你的api地址就可以了。即替换 “http://localhost/test/fenpei/log.php” 为你的api地址。如果你有后续的操作 可以写在接下来的回调中。