.. warning:: .. deprecated:: 2014.08.13 不再提供排队接口。对接的 APP 不必关心排队的状态,只需收发消息即可,不管消息是否来自排队之后的人工输入,还是来自排队前的机器产生文本。 ######### 排队接口 ######### 请求人工服务 ************* 该接口由 **全媒体系统提供** 。当收到了客户需要进行人工服务的时候,APP应调用该接口告知全媒体系统。 访问地址 ======== :Path: ``/api///staffService/demand`` :Method: ``POST`` 请求数据 ======== 使用HTTP请求的消息体记录要发送的消息。采用JSON格式。其属性有: * ``user_id`` :数据类型: ``str`` [``必须``] 请求人工服务的客户的ID * ``skill`` :数据类型: ``str`` [``可选``] 人工服务请求排队的技能 .. attention:: ``skill`` 与 ``spec_name`` 两个参数必须且只能提供其中的一个 * ``spec_name`` :数据类型: ``str`` [``可选``] 如果要接入指定的客服进行对话,用这个参数指定其工号。 .. attention:: ``skill`` 与 ``spec_name`` 两个参数必须且只能提供其中的一个 * ``queue_timeout`` :数据类型: ``int`` :默认值: ``45`` [``可选``] 最大排队时间(秒) * ``ring_time`` :数据类型: ``int`` :默认值: ``45`` [``可选``] 最大的人工响应等待时间(秒) * ``max_chat_time`` :数据类型: ``int`` [``必须``] 最大对话时间(秒) * ``ext_params`` :数据类型: ``str`` [``可选``] 附加参数 * ``data`` :数据类型: ``str`` [``可选``] 附加数据,可用于附带诸如业务类型、客户地理位置之类的数据。 .. warning:: 在发起一个人工服务请求之后,收到该请求的结果之前,APP应禁止同一个user再次发起新的人工服务排队请求。 回复数据 ======== 参见 :doc:`api_ret_code` 人工服务请求结果 **************** 该接口由 **APP 提供** 。当全媒体收到了人工服务请求后,将对该请求进行排队,当排队结束,全媒体系统应调用该接口告知APP排队结果。 访问地址 ======== :Path: ``//staffService/result`` :Method: ``POST`` 请求数据 ======== 使用HTTP请求的消息体记录要发送的消息。采用JSON格式。 如果排队成功,全媒体系统找到了一个坐席来为客户进行服务,那么,请求数据的格式形如: .. code-block:: json { "worknum":"1001", "display_name":"张三", "skill":"BaiDian", "skill_name":"白电" } 其属性含义是: * ``worknum`` :数据类型: ``str`` 被排队选中的坐席的工号 * ``display_name`` :数据类型: ``str`` 被排队选中的坐席的显示名 * ``skill`` :数据类型: ``str`` 排队技能 * ``skill_name`` :数据类型: ``str`` 排队技能显示名 如果排队失败或者出现错误,则请求数据形如: .. code-block:: json { "errcode": 404, "errmsg": "指定的坐席工号不存在" } 其格式参照返回码定义,参见 :doc:`api_ret_code` 一节 回复数据 ======== 参见 :doc:`api_ret_code` 查看人工服务会话信息 ******************** 该接口由 **全媒体系统提供** 。APP可调用该接口获得人工对话的会话信息。 访问地址 ======== :Path: ``/api///staffService/`` :Method: ``GET`` Path 变量 ========= * ``service_id`` :数据类型: ``str`` [``必须``] 要查看的人工服务会话的ID 回复数据 ======== 如果返回错误,返回值参见 :doc:`api_ret_code` 如果执行成功,返回值形如: .. code-block:: js { members: [{ type: 0, id: cm0395o34j5, display_name: "李先生", worknum: null, }, { type: 1, id: mc038n343es, display_name: "张三", worknum: "1001", }] } ``members`` 属性值是一个数组,它表示会话中的成员。数组的每一个成员都表示一个坐席或者客户的信息。 成员的属性有: * ``type`` :数据类型: int 成员类型 ==== ======== 数值 成员类型 ==== ======== 0 客户 1 坐席 ==== ======== * ``id`` :数据类型: str 客户ID。如果是坐席,则是坐席在全媒体系统的IM模块中的ID。 * ``worknum`` :数据类型: str 坐席工号 * ``display_name`` :数据类型: str 坐席或者客户的显示名 退出人工服务会话 **************** 该接口由 **全媒体系统提供** 。当客户退出人工服务时,APP应调用该接口通知全媒体系统。 访问地址 ======== :Path: ``/api///staffService/exit`` :Method: ``POST`` 请求数据 ======== 使用HTTP请求的消息体记录要发送的消息。采用JSON格式。 其属性有: * ``user_id`` :数据类型: str 要退出的人工服务会话的客户的ID * ``service_id`` :数据类型: str 要退出的人工服务会话的ID 回复数据 ======== 参见 :doc:`api_ret_code` 退出人工服务会话通知 ******************** 该接口由 **APP 提供** 。当各种原因导致客户或者坐席离开人工服务会话时,全媒体系统应用该接口通知APP。 访问地址 ======== :Path: ``//staffService/exited`` :Method: ``POST`` 请求数据 ======== 使用HTTP请求的消息体记录要发送的消息。采用JSON格式。其属性有: * ``service_id`` :数据类型: ``str`` 人工服务会话的ID * ``type`` :数据类型: int 退出成员的类型 ==== ======== 数值 成员类型 ==== ======== 0 客户 1 坐席 ==== ======== * ``id`` :数据类型: str 退出客户的ID。如果退出的是坐席,则是坐席在全媒体系统的IM模块中的ID。 * ``worknum`` :数据类型: str 退出的坐席的工号 回复数据 ======== 参见 :doc:`api_ret_code` 人工服务会话结束通知 ******************** 该接口由 **APP 提供** 。当各种原因导致人工服务会话结束时,全媒体系统应用该接口通知APP。 访问地址 ======== :Path: ``//staffService/disposed`` :Method: ``POST`` 请求数据 ======== 使用HTTP请求的消息体记录要发送的消息。采用JSON格式。其属性有: * ``service_id`` :数据类型: ``str`` 人工服务会话的ID 回复数据 ======== 参见 :doc:`api_ret_code`