1. 使用说明

欢迎使用 “AICC” 开发者工具套件(SDK)。SDK 对 API 接口调用进行了封装,让您不用复杂编程即可实现 “AICC” 与自有系统的集成,管理 “AICC” 的数据配置、呼叫控制、通话记录等各种资源。 本项目已开源至GitHub: https://github.com/ti-net/clink-sdk

2. 快速开始

2.1. 环境准备

  • 和直接调用 API 接口一样,您也需要一个访问密钥:AccessKeyID/AccessKeySecret。

  • 访问密钥对可以通过登录系统管理后台,在【系统管理-系统对接-接口密钥】模块自助生成。每个访问密钥对可以设置不同的接口访问控制权限。

  • 目前,我们仅支持 Java 语言的 SDK,您需要一个基础的 Java 开发环境,JDK 版本 >= 1.6。

2.2. 安装 SDK

如果您使用 Apache Maven 来管理 Java 项目,只需在项目的 pom.xml 中文件加入相应的依赖项即可:

<dependency>
    <groupId>com.ti-net</groupId>
    <artifactId>clink-serversdk</artifactId>
    <version>3.0.30</version>
</dependency>

2.3. 使用 SDK

以下代码示例展示了使用 SDK 完成服务调用的 3 个主要步骤:

  • 1.创建并初始化 Client 实例。

  • 2.创建 API 请求并设置参数。

  • 3.发起请求并处理应答或异常。

package com.tinet.clink.openapi;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.cc.request.queue.ListQueuesRequest;
import com.tinet.clink.cc.response.queue.ListQueuesResponse;

public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret
        /*
            设置请求平台:
                北京平台:api-bj.clink.cn
                上海平台:api-sh.clink.cn
            默认为北京平台
        */
        configuration.setHost("api-bj.clink.cn");

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        ListQueuesRequest request = new ListQueuesRequest();
        // 签名的有效时间(秒),最小值为 1,最大值为 86400(24 小时),默认为 5
        request.expires(5);
        request.setLimit(10);
        request.setOffset(0);

        // 发起请求并处理应答或异常
        ListQueuesResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response.getQueues()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
    }
}

2.4. 错误处理

当服务端或者客户端出错时,SDK 会抛出相应的异常,其中会包含具体的错误信息,包括错误码(Error Code)和错误消息(Error Message)。您需要捕获这些异常,并根据错误信息进行相应的错误处理。SDK 的异常包括两种:

  • ServerException是服务端错误信息。

  • ClientException是SDK端错误信息。

以下代码示例展示了SDK的异常错误处理逻辑:

try {
      ListQueuesResponse response = client.getResponseModel(request);
      // 处理Response
      // ...
    } catch (ClientException e) {
      // 这里可以添加您自己的错误处理逻辑
      // 例如,打印具体的错误信息
      System.out.println("ErrorMessage=" + e.getErrMsg());
      // 如果遇上棘手问题,可以提交工单,并将RequestId提供给我们
      System.out.println("ResponseId=" + e.getRequestId());
    } catch (ServerException e) {
      // 这里可以添加您自己的错误处理逻辑
      // ...
    }

3. 会话管理

3.1. 访客发起会话

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatVisitorOpenSessionRequest;
import com.tinet.clink.livechat.response.ChatVisitorOpenSessionResponse;

public class ChatVisitorOpenSessionTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                        "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatVisitorOpenSessionRequest request = new ChatVisitorOpenSessionRequest();
        request.setAppId("str");
        request.setCreateTime(System.currentTimeMillis());

        List<ChatMessageSyncModel> messages = new ArrayList<>();
        ChatMessageSyncModel chatMessageSyncModel = new ChatMessageSyncModel();
        chatMessageSyncModel.setSenderType(4);
        chatMessageSyncModel.setSenderId("str");
        chatMessageSyncModel.setSenderName("str");
        chatMessageSyncModel.setMessageType(5);
        chatMessageSyncModel.setContent("str");
        chatMessageSyncModel.setCreateTime(System.currentTimeMillis());
        messages.add(chatMessageSyncModel);

        request.setMessages(messages);
        ChatVisitorOpenSessionResponse response = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(response));
    }
}

3.2. 访客结束会话

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatVisitorCloseSessionRequest;
import com.tinet.clink.livechat.response.ChatVisitorCloseSessionResponse;

public class ChatVisitorCloseSessionTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatVisitorCloseSessionRequest request = new ChatVisitorCloseSessionRequest();
        request.setSessionId("str");
        ChatVisitorCloseSessionResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

3.3. 访客完成满意度评价

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.model.ChatInvestigationOptionModel;
import com.tinet.clink.livechat.request.ChatSubmitInvestigationRequest;
import com.tinet.clink.livechat.response.ChatSubmitInvestigationResponse;

public class ChatSubmitInvestigationTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatSubmitInvestigationRequest request = new ChatSubmitInvestigationRequest();
        request.setSessionId("str");

        ChatInvestigationOptionModel[] options = new ChatInvestigationOptionModel[1];
        options[0] = new ChatInvestigationOptionModel();
        options[0].setName("评价名称");
        String[] label = new String[2];
        label[0] = "标签1";
        label[1] = "标签2";
        options[0].setLabel(label);
        options[0].setStar(5);
        request.setOptions(options);

        request.setRemark("评价备注");

        request.setSolve(1);
        ChatSubmitInvestigationResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

3.4. 访客退出排队

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatQuitQueueRequest;
import com.tinet.clink.livechat.response.ChatQuitQueueResponse;

public class ChatQuitQueueTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatQuitQueueRequest request = new ChatQuitQueueRequest();
        request.setSessionId("str");

        ChatQuitQueueResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

3.5. 访客转人工

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatRobotTransferRequest;
import com.tinet.clink.livechat.response.ChatRobotTransferResponse;

public class ChatRobotTransferTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatRobotTransferRequest request = new ChatRobotTransferRequest();
        request.setSessionId("str");
        ChatRobotTransferResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

3.6. 发消息给客服

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatMessageToClientRequest;
import com.tinet.clink.livechat.response.ChatMessageToClientResponse;

public class ChatMessageToClientTest {

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatMessageToClientRequest request = new ChatMessageToClientRequest();
        request.setSessionId("str");
        request.setMessageType(1);
        request.setContent("str");
        request.setFileUrl("str");
        request.setFileName("str");
        //  request.setFile(new File("str"));
        ChatMessageToClientResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

3.7. 发消息给访客

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatMessageToVisitorRequest;
import com.tinet.clink.livechat.response.ChatMessageToVisitorResponse;

public class ChatMessageToVisitorTest {

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatMessageToVisitorRequest request = new ChatMessageToVisitorRequest();
        request.setCno("str");
        request.setSenderType(1);
        request.setSessionId("str");
        request.setMessageType(1);
        request.setContent("str");
        request.setFileUrl("");
        request.setFileName("str");
        //  request.setFile(new File("str"));
        ChatMessageToVisitorResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

4. 会话记录

4.1. 查询消息记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import org.junit.Test;

public class ChatRecordTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

     public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ListChatMessageRequest request = new ListChatMessageRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client =  new Client(configuration);
        request.setLimit(10);
        request.setDate("20211020");
        request.setMainUniqueId("677586f3-c8a7-4e08-bfd4-8ba9e0be152c.1634632141");

        ChatMessageResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.2. 查询会话详情

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.livechat.request.ChatRecordInfoRequest;
import com.tinet.clink.livechat.response.ChatRecordResponse;

public class ChatRecordInfoTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

    public static void  main(String[] args) throws Exception {
        ChatRecordInfoRequest request = new ChatRecordInfoRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key>");

        Client client =  new Client(configuration);
        request.setMainUniqueId("20935007-dac8-4cb2-b67f-d5677baeebc0.1648108890");
        request.setDate("20220324");

        ChatRecordResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.3. 查询访客消息未读数

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.livechat.request.ChatVisitorInfoRequest;
import com.tinet.clink.livechat.response.ChatVisitorInfoResponse;

public class ChatVisitorInfoTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

    public static void  main(String[] args) throws Exception {
        ChatVisitorInfoRequest request = new ChatVisitorInfoRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key>");

        Client client =  new Client(configuration);
        request.setVisitorId("8609c4cf-fcf9-4efa-bc3d-02dc888a8443");
        request.setAccessId("ac89d543-30ff-4d15-b5c4-6e1a9cc80c25");

        ChatVisitorInfoResponse response = client.getResponseModel(request);
		System.out.println(response.getUnreadCount());
        System.out.println(mapper.writeValueAsString(response));

    }
}

4.4. 同步会话记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatCommentRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ChatInvestigationResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class ChatRecordTest extends AbstractTest {

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ChatRecordRequest request = new ChatRecordRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        client = new Client(configuration);

        request.setLimit(10);
        request.setDate("20200727");

        ChatRecordResponse response = client.getResponseModel(request);
        System.out.println(response.getRecords().size());;
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.5. 同步消息记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatCommentRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ChatInvestigationResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class ChatRecordTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

     public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ChatMessageRequest request = new ChatMessageRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client =  new Client(configuration);
        request.setLimit(10);
        request.setDate("20200730");

        ChatMessageResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.6. 同步会话详情记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatCommentRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ChatInvestigationResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class ChatRecordTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ChatDetailRequest request = new ChatDetailRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setLimit(10);
        request.setDate("20200730");

        ChatDetailResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.7. 同步留言记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatCommentRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ChatInvestigationResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class ChatRecordTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

   public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ChatCommentRequest request = new ChatCommentRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setLimit(10);
        request.setDate("20200730");

        ChatCommentResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.8. 同步满意度记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatCommentRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ChatInvestigationResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class ChatRecordTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ChatInvestigationRequest request = new ChatInvestigationRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setLimit(10);
        request.setMainUniqueId("20935007-dac8-4cb2-b67f-d5677baeebc0.1648108890");
        request.setDate("20200730");

        ChatInvestigationResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.9. 查询聊天记录(新)

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionMessageResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionRecordMessageTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionMessageRequest request = new SessionMessageRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setMainUniqueId("84b40d1c-3be1-437e-a560-3ca30bb3fde6.1733397784");
        request.setPageIndex(2);
        request.setPageSize(1);

        SessionMessageResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.10. 查询会话详情(新)

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionInfoRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionInfoResponse;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionInfoTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionInfoRequest request = new SessionInfoRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setMainUniqueId("84b40d1c-3be1-437e-a560-3ca30bb3fde6.1733397784");

        SessionInfoResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.11. 同步会话记录(新)

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionRecordRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionInfoResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionRecordTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionRecordRequest request = new SessionRecordRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-10 00:25");
        request.setEndTime("2024-12-10 10:25");
        request.setPageIndex(1);
        request.setPageSize(1);

        SessionRecordResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.12. 同步座席&机器人会话记录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.ChatRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionDetailRecordResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionDetailRecordTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionDetailRecordRequest request = new SessionDetailRecordRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-10 00:25");
        request.setEndTime("2024-12-10 10:25");
        request.setPageIndex(1);
        request.setPageSize(1);

        SessionDetailRecordResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

4.13. 同步满意度记录(新)

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.SessionInvestigationRecordRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionInvestigationRecordResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionInvestigationRecordTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionInvestigationRecordRequest request = new SessionInvestigationRecordRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-10 00:25");
        request.setEndTime("2024-12-10 10:25");
        request.setPageIndex(1);
        request.setPageSize(1);

        SessionInvestigationRecordResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

5. 报表

5.1. 座席工作量报表

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatChatClientWorkloadRequest;
import com.tinet.clink.livechat.response.StatChatClientWorkloadResponse;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatChatClientWorkloadRequest request = new StatChatClientWorkloadRequest();
        request.setDate("20201125");

        // 发起请求并处理应答或异常
        StatChatClientWorkloadResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response.getStatChatQueueWorkload()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }  catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
    }
}

5.2. 队列报表

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatChatQueueWorkloadRequest;
import com.tinet.clink.livechat.response.StatChatQueueWorkloadResponse;

public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatChatQueueWorkloadRequest request = new StatChatQueueWorkloadRequest();
        request.setDate("20201125");

        // 发起请求并处理应答或异常
        StatChatQueueWorkloadResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response.getStatChatQueueWorkload()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
    }
}

5.3. 座席工作台首页数据

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatChatClientWorkloadNewRequest;
import com.tinet.clink.livechat.response.StatChatClientWorkloadResponse;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatChatClientWorkloadNewRequest request = new StatChatClientWorkloadNewRequest();
        request.setDate("20220524");

        // 发起请求并处理应答或异常
        StatChatClientWorkloadResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response.getStatChatQueueWorkload()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }  catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
    }
}

5.4. 座席工作考勤报表

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatChatClientWorkloadNewRequest;
import com.tinet.clink.livechat.response.StatChatClientWorkloadResponse;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatChatClientAttendanceRequest request = new StatChatClientAttendanceRequest();
        request.setStartTime("20220901");
        request.setEndTime("20220901");
        String[] strings = {"0001","0002"};
        request.setCnos(strings);
        request.setSortAsc(true);

        // 发起请求并处理应答或异常
        StatChatClientAttendanceResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response.getStatChatClientAttendance()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }  catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
    }
}

5.5. 座席工作质量报表

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.client.Client;
import com.tinet.clink.core.client.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatChatClientWorkQualityRequest;
import com.tinet.clink.livechat.response.StatChatClientWorkQualityResponse;
import java.util.ArrayList;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatChatClientWorkQualityRequest request = new StatChatClientWorkQualityRequest();
        request.setStartTime("2023-04-24 00:00");
        request.setEndTime("2023-04-24 23:59");
        List<String> cnos = new ArrayList<>();
        cnos.add("0001");
        cnos.add("0002");
        List<Integer> appType = new ArrayList<>();
        appType.add(1);
        appType.add(2);
        request.setAppType(appType);
        request.setCnos(cnos);
        request.setSortAsc(true);

        // 发起请求并处理应答或异常
        StatChatClientWorkQualityResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response.getStatChatClientWorkQuality()));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
	}
}

5.6. 座席工作量报表(新)

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.client.Client;
import com.tinet.clink.core.client.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatClientEffortRequest;
import com.tinet.clink.livechat.response.ChatClientEffortResponse;
import java.util.ArrayList;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        ChatClientEffortRequest request = new ChatClientEffortRequest();
        request.setStartTime("2023-04-24 00:00");
        request.setEndTime("2023-04-24 23:59");
        List<String> cnos = new ArrayList<>();
        cnos.add("0001");
        cnos.add("0002");
        request.setCnos(cnos);
        List<Integer> appType = new ArrayList<>();
        appType.add(1);
        appType.add(2);
        request.setAppType(appType);
        request.setSortAsc(true);
        request.setOffset(0);
        request.setLimit(10);
        // 发起请求并处理应答或异常
        ChatClientEffortResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
	}
}

5.7. 队列报表_按时间统计

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.client.Client;
import com.tinet.clink.core.client.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatQueuePeriodListRequest;
import com.tinet.clink.livechat.response.StatQueuePeriodListResponse;
import java.util.ArrayList;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatQueuePeriodListRequest request = new StatQueuePeriodListRequest();
        request.setStartTime("");
        request.setEndTime("");
        List<Integer> appType = new ArrayList<>();
        request.setAppType(appType);
        List<String> qnos = new ArrayList<>();
        request.setQnos(qnos);
        request.setPeriodType(1);
        // 发起请求并处理应答或异常
        StatQueuePeriodListResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
	}
}

5.8. 队列报表_按队列统计

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.client.Client;
import com.tinet.clink.core.client.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatQueueQnoPageRequest;
import com.tinet.clink.livechat.response.StatQueueQnoPageResponse;
import java.util.ArrayList;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatQueueQnoPageRequest request = new StatQueueQnoPageRequest();
        request.setStartTime("");
        request.setEndTime("");
        List<Integer> appType = new ArrayList<>();
        appType.add(1);
        request.setAppType(appType);
        List<String> qnos = new ArrayList<>();
        request.setQnos(qnos);
        request.setPageIndex(1);
        request.setPageSize(10);
        // 发起请求并处理应答或异常
        StatQueueQnoPageResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
	}
}

5.9. 满意度报表-按座席统计

package com.tinet.clink.core;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.client.Client;
import com.tinet.clink.core.client.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.StatInvestigationCnoPageRequest;
import com.tinet.clink.livechat.response.StatInvestigationCnoPageResponse;
import java.util.ArrayList;
import java.util.List;


public class Test {
    public static void main(String[] args) {
        // 创建访问服务的client实例并初始化
        ClientConfiguration configuration = new ClientConfiguration(
                "<your-access-key-id>",          // AccessKeyId
                "<your-access-key-secret>");     // AccessKeySecret

        Client client = new Client(configuration);

        // 创建API请求并设置参数
        StatInvestigationCnoPageRequest request = new StatInvestigationCnoPageRequest();
        request.setStartTime("");
        request.setEndTime("");
        List<Integer> appType = new ArrayList<>();
        request.setAppType(appType);
        List<String> cnos = new ArrayList<>();
        request.setCnos(cnos);
        List<String> qnos = new ArrayList<>();
        request.setQnos(qnos);
        request.setPageIndex(1);
        request.setPageSize(10);
        // 发起请求并处理应答或异常
        StatInvestigationCnoPageResponse response;
        ObjectMapper mapper = new ObjectMapper();

        try {
            response = client.getResponseModel(request);
            try {
                System.out.println(mapper.writeValueAsString(response));
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        } catch (ClientException e) {
            e.printStackTrace();
        } catch (ServerException e) {
            e.printStackTrace();
        }
	}
}

5.10. 满意度报表-按队列统计

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.InvestigationStatQnoPageRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.InvestigationStatQnoPageResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class InvestigationStatQnoTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        InvestigationStatQnoPageRequest request = new InvestigationStatQnoPageRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-10 00:25");
        request.setEndTime("2024-12-10 10:25");
        request.setPageIndex(1);
        request.setPageSize(1);

        InvestigationStatQnoPageResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

5.11. 会话量报表-按会话统计

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.SessionStatPeriodRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionDetailRecordResponse;
import com.tinet.clink.livechat.response.SessionStatPeriodResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionStatPeriodTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionStatPeriodRequest request = new SessionStatPeriodRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-10 00:25");
        request.setEndTime("2024-12-10 10:25");
        List<Integer> contactTypes = Collections.singletonList(1);
        request.setContactTypes(contactTypes);
        request.setPeriodType(1);

        SessionStatPeriodResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

5.12. 会话量报表_按接入号统计

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.SessionStatPeriodRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.SessionStatAppResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class SessionStatPeriodTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        SessionStatPeriodRequest request = new SessionStatPeriodRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-10 00:25");
        request.setEndTime("2024-12-10 23:25");
        request.setPageIndex(1);
        request.setPageSize(2);
        List<Integer> contactTypes = Collections.singletonList(1);
        request.setContactTypes(contactTypes);

        SessionStatAppResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

5.13. 座席工作量报表(新)

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.ClientStatCnoPageRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ClientStatCnoPageResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class ClientStatCnoTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientStatCnoPageRequest request = new ClientStatCnoPageRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);
        request.setStartTime("2024-11-10 00:25");
        request.setEndTime("2024-12-10 10:25");
        request.setPageIndex(1);
        request.setPageSize(1);
        List<Integer> contactTypes = Collections.singletonList(1);
        request.setContactTypes(contactTypes);

        ClientStatCnoPageResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

5.14. 座席考勤报表(新)

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.SessionMessageRequest;
import com.tinet.clink.livechat.request.ChatDetailRequest;
import com.tinet.clink.livechat.request.ChatInvestigationRequest;
import com.tinet.clink.livechat.request.SessionDetailRecordRequest;
import com.tinet.clink.livechat.request.ClientStatAttendancePageRequest;
import com.tinet.clink.livechat.response.ChatCommentResponse;
import com.tinet.clink.livechat.response.ChatDetailResponse;
import com.tinet.clink.livechat.response.ClientStatAttendancePageResponse;
import com.tinet.clink.livechat.response.SessionRecordResponse;
import com.tinet.clink.livechat.response.ChatRecordResponse;
import org.junit.Test;

public class StatClientAttendanceTest extends AbstractTest {

    private static ObjectMapper mapper = new ObjectMapper();

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientStatAttendancePageRequest request = new ClientStatAttendancePageRequest();
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client = new Client(configuration);

        request.setStartTime("2024-12-09 00:25");
        request.setEndTime("2024-12-10 10:25");
        request.setPageIndex(1);
        request.setPageSize(1);
        List<Integer> contactTypes = Collections.singletonList(1);
        request.setContactTypes(contactTypes);

        ClientStatAttendancePageResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

6. 客服管理

6.1. 客服登录

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatClientLoginRequest;
import com.tinet.clink.livechat.response.ChatClientLoginResponse;

public class ChatClientLoginTest {

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatClientLoginRequest request = new ChatClientLoginRequest();
        request.setCno("str");
        request.setChatLoginStatus(1);
        request.setPauseType(1);
        request.setPauseDescription("str");
        ChatClientLoginResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

6.2. 客服登出

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatClientLogoutRequest;
import com.tinet.clink.livechat.response.ChatClientLogoutResponse;

public class ChatClientLogoutTest {

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatClientLogoutRequest request = new ChatClientLogoutRequest();
        request.setCno("str");
        ChatClientLogoutResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

6.3. 客服状态变更

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatClientStatusChangeRequest;
import com.tinet.clink.livechat.response.ChatClientStatusChangeResponse;

public class ChatClientStatusChangeTest {

    public static void main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatClientStatusChangeRequest request = new ChatClientStatusChangeRequest();
        request.setCno("str");
        request.setStatus(1);
        ChatClientStatusChangeResponse responseModel = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(responseModel));
    }
}

7. 监控

7.1. 查询在线客服队列座席状态

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.AbstractTest;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatMessageRequest;
import com.tinet.clink.livechat.response.ChatMessageResponse;
import org.junit.Test;import java.util.ArrayList;import java.util.Arrays;

public class ChatRecordTest extends AbstractTest {

    private ObjectMapper mapper = new ObjectMapper();

     public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");

        Client client =  new Client(configuration);

        ChatQueueStatusRequest request = new ChatQueueStatusRequest();
        // 查询所有队列注释此行
        request.setQnos(new ArrayList<>(Arrays.asList("2021","2019")));

        ChatQueueStatusResponse response = client.getResponseModel(request);
        System.out.println(mapper.writeValueAsString(response));
    }
}

8. 多商户

8.1. 网页接入号修改

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatWebSettingUpdateRequest;
import com.tinet.clink.livechat.response.ChatWebSettingUpdateResponse;

public class ChatWebSettingUpdateTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                        "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatWebSettingUpdateRequest request = new ChatWebSettingUpdateRequest();
        request.setAccessId("接入号Id");
        request.setAccessName("接入号名称");
        ChatWindowsSetting windowsSetting = new ChatWindowsSetting();
        windowsSetting.setLogo("窗口图标图片地址");
        request.setWindowSetting(windowsSetting);

        ChatWebSettingUpdateResponse response = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(response));
    }
}

8.2. 网页接入号复制

package com.tinet.clink.core.chat;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.tinet.clink.core.Client;
import com.tinet.clink.core.ClientConfiguration;
import com.tinet.clink.core.exceptions.ClientException;
import com.tinet.clink.core.exceptions.ServerException;
import com.tinet.clink.livechat.request.ChatWebSettingCopyRequest;
import com.tinet.clink.livechat.response.ChatWebSettingCopyResponse;

public class ChatWebSettingCopyTest {

    public static void  main(String[] args) throws ServerException, ClientException, JsonProcessingException {
        ClientConfiguration configuration = new ClientConfiguration("<your-access-key-id>",
                "<your-access-key-id>");
        Client client = new Client(configuration);

        ChatWebSettingCopyRequest request = new ChatWebSettingCopyRequest();
        request.setAccessId("接入号Id");

        ChatWebSettingCopyResponse response = client.getResponseModel(request);
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(mapper.writeValueAsString(response));
    }
}