Android中集成环信SDK客户互动云步骤

         最近遇到一个需求,要求集成在线客服功能,于是找到了环信客户互动云,在此记录一下集成步骤,以便以后用到,记录下来方便大家查看。如有错误请多多指教。

一、注册环信客户互动云管理员账户

获取appkey和apptoken等信息,图示如下,注意是【管理员模式】

二、SDK集成分两种方法:

1.gradle中引用:http://docs.easemob.com/cs/300visitoraccess/androidsdk#buildgradle_配置

2.下载SDK,直接在项目中以module形式引入项目。

三、初始化SDK

options.setAppkey(APPKEY);
        options.setTenantId(APPTOKEN);
        //客服SDK初始化
        if (!ChatClient.getInstance().init(this,options)){
            return;
        }
        //客服EaseUI的初始化
        UIProvider.getInstance().init(this);

这里的APPKEY就是第一步申请的appkey,APPTOKEN在   设置 -.>企业信息 的租户id中查看。

四、打开会话界面

打开会话界面需要一下几个步骤:

  1.注册用户;

  2.登陆;

  3.打开会话;

注册:

private void register(){
        ChatClient.getInstance().register(ed_accountid.getText().toString(), ed_password.getText().toString(), new Callback() {
            @Override
            public void onSuccess() {
                Log.d(TAG, "onSuccess: 注册成功");
                Toast.makeText(getActivity(),"注册成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(int i, String s) {
                Log.d(TAG, "onError: 注册失败 code:" + i + "message:" + s );
            }

            @Override
            public void onProgress(int i, String s) {

            }
        });
    }

        这里的ed_accountid.getText().toString(), ed_password.getText().toString()是界面中的EditTextView,就不再给出代码了。

登陆:

private void login(){
        ChatClient.getInstance().login(ed_accountid.getText().toString(), ed_password.getText().toString(), new Callback() {
            @Override
            public void onSuccess() {
                Log.d(TAG, "onSuccess: 登陆成功");
//                Toast.makeText(getActivity(),"登陆成功",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onError(int i, String s) {
                Log.d(TAG, "onError: 登陆失败 Code:" + i + "message:" + s);
            }

            @Override
            public void onProgress(int i, String s) {

            }
        });

打开会话界面:

    private void openChating(){
        if (ChatClient.getInstance().isLoggedInBefore()){
            //已经登陆,直接进入会话
            Intent chatIntent = new IntentBuilder(getActivity())//获取到当前Activity
                    .setServiceIMNumber("kefuchannelimid_853236")
                    .build();
            startActivity(chatIntent);

        }else {
            login();
            openChating();//执行登陆
        }
    }

五、打开自定义的会话界面

这里我们需要将SDK中的ChatFragment放到自己的Activity,或者继承ChatFragment重写自己的Fragment在放到自己的Activity中,然后打开自己的Activity即可,打开自定义Activity方法:

Intent chatIntent = new IntentBuilder(getActivity()).setTargetClass(EaseUIAct.class)//自定义activity
                    .setServiceIMNumber("kefuchannelimid_853236")
                    .build();
            startActivity(chatIntent);

在自定义的Activity中添加会话的ChatFragment:

Bundle bundle = getIntent().getExtras();
        if (bundle != null){
            //IM服务号
            toChatUserName = bundle.getString(com.hyphenate.helpdesk.easeui.util.Config.EXTRA_SERVICE_IM_NUMBER);

            //
            String chatFragmentTAG = "chatFragment";
            chatFragment = (ChatFragment)getSupportFragmentManager().findFragmentByTag(chatFragmentTAG);
            if (chatFragment == null){
                chatFragment = new ChatFragment();//ChatFragment();
//                Bundle bundle1 = new Bundle();
//                bundle.putString(com.hyphenate.helpdesk.easeui.util.Config.EXTRA_SERVICE_IM_NUMBER,toChatUserName);
                chatFragment.setArguments(getIntent().getExtras());
            }

            fragmentManager = getSupportFragmentManager();
            transaction = fragmentManager.beginTransaction();


            transaction.add(R.id.fl_chatContent,chatFragment);
            transaction.show(chatFragment);
            transaction.commit();
        }

六、获取机器人欢迎语

//获取机器人欢迎语
    private void getRobotWelcome(){
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    URL url = new URL("http://kefu.easemob.com/v1/Tenants/60284/robots/visitor/greetings/app");

                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
//                    connection.setDoOutput(true);
//                    connection.setDoInput(true);
//                    connection.setUseCaches(false);

                    connection.setRequestMethod("GET");

                    int code = connection.getResponseCode();

                    if (code == 200){
                        InputStream inputStream = connection.getInputStream();

                        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
                        byte[] tmp = new byte[1024];
                        int len = -1;
                        while ((len = inputStream.read(tmp)) != -1){
                            outputStream.write(tmp,0,len);
                        }

                        inputStream.close();
                        outputStream.close();

                        String welcome = new String(outputStream.toByteArray(),"utf-8");

                        JSONObject jsonObject = new JSONObject(welcome);
                        int type = jsonObject.getInt("greetingTextType");
                        String greetingText = jsonObject.optString("greetingText");
                        if (type == 0){
                            Message message = Message.createReceiveMessage(Message.Type.TXT);
                            EMTextMessageBody body = null;
                            body = new EMTextMessageBody(greetingText);
                            message.setFrom("kefuchannelimid_853236");
                            message.addBody(body);
                            message.setMessageTime(System.currentTimeMillis());
                            message.setMsgId(UUID.randomUUID().toString());
                            ChatClient.getInstance().chatManager().saveMessage(message);
                        }
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }).start();
    }

这个可以在自定义的会话中的初始化会话界面的时候添加。

好了希望能帮助到大家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值