1.客服增刪改查
增加客服
https://api.weixin.qq.com/customservice/kfaccount/add?access_token=ACCESS_TOKEN
更新客服類似
https://api.weixin.qq.com/customservice/kfaccount/update?access_token=ACCESS_TOKEN
post提交的數據格式如下:
{ "kf_account" : "test1@test", "nickname" : "客服1", "password" : "96e79218965eb72c92a549dd5a330112" }
從上面可以看到,沒有對客服進行分組什么的概念,所以如果用到分組功能的話,需要在本地去存儲上自己添加的所有客服,並且對客服進行分組,通過獲取到列表后,再根據本地的規則對客服進行排序分組即可。
修改客服頭像
http://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token=ACCESS_TOKEN&kf_account=KFACCOUNT
刪除客服賬號
https://api.weixin.qq.com/customservice/kfaccount/del?access_token=ACCESS_TOKEN&kf_account=KFACCOUNT
2.獲取客服列表
https://api.weixin.qq.com/cgi-bin/customservice/getkflist?access_token=ACCESS_TOKEN
通過該列表可以請求到所有的客服列表。
3.獲取在線客服列表
用戶想要選擇客服進行咨詢,這時候肯定是想選擇有效的在線客服去咨詢
https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token=ACCESS_TOKEN
獲取的結果大致如下:
{ "kf_online_list": [ { "kf_account": "test1@test", "status": 1, "kf_id": "1001", "auto_accept": 0, "accepted_case": 1 }, { "kf_account": "test2@test", // 完整客服賬號,格式為:賬號前綴@公眾號微信號 "status": 1, // 客服在線狀態 1:pc在線,2:手機在線。若pc和手機同時在線則為 1+2=3 "kf_id": "1002", // 客服工號 "auto_accept": 0, // 客服設置的最大自動接入數 "accepted_case": 2// 客服當前正在接待的會話數 } ] }
4.創建會話
該接口為多客服的客服工號創建會話,將某個客戶直接指定給客服工號接待,需要注意此接口不會受客服自動接入數以及自動接入開關限制。只能為在線的客服(PC客戶端在線,或者已綁定多客服助手)創建會話。
https://api.weixin.qq.com/customservice/kfsession/create?access_token=ACCESS_TOKEN
POST數據示例如下: { "kf_account" : "test1@test", "openid" : "OPENID", "text" : "這是一段附加信息" //附加信息,文本會展示在客服人員的多客服客戶端 }
當創建會話成功的時候會有事件推送到服務器上:
<xml> <ToUserName><![CDATA[touser]]></ToUserName> <FromUserName><![CDATA[fromuser]]></FromUserName> <CreateTime>1399197672</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[kf_create_session]]></Event> <KfAccount><![CDATA[test1@test]]></KfAccount> </xml>
可以根據這個去通知用戶某個客服正在為其服務等通知消息。
5.獲取客戶會話狀態 和 獲取未接入的會話列表
當用戶會話創建成功后,如果客服當前接待人數較多,則不會馬上接入,而是進入了會話列表中。服務器可以定時的查看該用戶的會話狀態來為客戶提供提供更友好的服務。
https://api.weixin.qq.com/customservice/kfsession/getsession?access_token=ACCESS_TOKEN&openid=OPENID
返回數據示例(正確時的JSON返回結果): { "createtime" : 123456789,// 會話接入的時間 "errcode" : 0, "errmsg" : "ok", "kf_account" : "test1@test"// 正在接待的客服,為空表示沒有人在接待 }
獲取未接入的會話列表
https://api.weixin.qq.com/customservice/kfsession/getwaitcase?access_token=ACCESS_TOKEN
開發者可以通過本接口獲取當前正在等待隊列中的會話列表,此接口最多返回最早進入隊列的100個未接入會話。
返回數據示例(正確時的JSON返回結果): { "count" : 150, // 未接入會話數量,可能會大於下面的數目 "waitcaselist" : [ // 未接入會話列表,最多返回100條數據 { "createtime" : 123456789, // 用戶來訪時間,UNIX時間戳 "kf_account" : "test1@test",// 指定接待的客服,為空表示未指定客服 "openid" : "OPENID" // 客戶openid }, { "createtime" : 123456789, "kf_account" : "", "openid" : "OPENID" } ] }
6. 獲取指定客服的會話狀態
https://api.weixin.qq.com/customservice/kfsession/getsessionlist?access_token=ACCESS_TOKEN&kf_account=KFACCOUNT
開發者可以通過本接口獲取某個客服正在接待的會話列表。
返回數據示例(正確時的JSON返回結果): { "sessionlist" : [ // 會話列表 { "createtime" : 123456789, // 會話創建時間,UNIX時間戳 "openid" : "OPENID" // 客戶openid }, { "createtime" : 123456789, "openid" : "OPENID" } ] }
可以通過獲取到該客服的會話狀態信息,制定一個可靠的算法去估算出一個等待用戶接入需要等待的時間,並且通知到客戶。
7.轉接會話
這個不能通過接口來實現,但是在客戶端或者網頁上可以實現。
當客服無法解決問題轉接到其他客服手里或者由於其他原因需要轉接的時候,會有事件推送到服務器上
<xml> <ToUserName><![CDATA[touser]]></ToUserName> <FromUserName><![CDATA[fromuser]]></FromUserName> <CreateTime>1399197672</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[kf_switch_session]]></Event> <FromKfAccount><![CDATA[test1@test]]></FromKfAccount> <ToKfAccount><![CDATA[test2@test]]></ToKfAccount> </xml>
8.關閉會話
當一個會話完成或者用戶不願意等待的時候,最好手動去關閉一個會話,否則這個會話在有效時間內總是存在的。
https://api.weixin.qq.com/customservice/kfsession/close?access_token=ACCESS_TOKEN
POST數據示例如下: { "kf_account" : "test1@test", "openid" : "OPENID", "text" : "這是一段附加信息" // 附加信息,文本會展示在客服人員的多客服客戶端 }
會話關閉后,會有事件消息推送到服務器上:
<xml> <ToUserName><![CDATA[touser]]></ToUserName> <FromUserName><![CDATA[fromuser]]></FromUserName> <CreateTime>1399197672</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[kf_close_session]]></Event> <KfAccount><![CDATA[test1@test]]></KfAccount> </xml>
這是對多客服開發的一個簡單的總結,還不完善,很多有待思考補充。
之前由於沒升級多客服系統,測試期間很多接口都返回-1,系統錯誤。其中有騰訊的原因,也有自己的原因。