基于环信实现android客户端客服聊天功能

本来类似于这种第三方的功能是没有必要写博客的,但是由于环信客服功能的文档实在版本过旧,所以在此记录下,希望能给大家带来一点便利。
工具:androidStudio

第1步:
注册一个环信的账号,地址如下,有了直接登录就可以了。https://kefu.easemob.com/mo/login
![登录进来的界面](https://img-blog.csdn.net/20171102190844936?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbXV6aWxpMTIwNg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)

然后切换右上角的管理员模式,进入如下界面:
基于环信实现android客户端客服聊天功能_第1张图片
点击左面的列表中的渠道管理——手机App
然后添加App关联——快速创建
这个时候会出现很多的信息出现如下界面:
基于环信实现android客户端客服聊天功能_第2张图片
这里需要用到的为AppKey。然后点击左边列表的设置——企业信息,查看租户id(5位纯数字)
这里的IM服务号需要记录,后面会用到。
到这里,前期的准备信息工作算是完成。

第2步
找到项目的app下的build.gradle,添加如下信息:
//环信客服SDK
compile ‘com.hyphenate:kefu-easeui-android:1.1.2’ //或者 compile ‘com.hyphenate:kefu-easeui-android:1.1.2’
//EaseUI中 头像获取用到了glide,请添加glide库
compile ‘com.github.bumptech.glide:glide:3.7.0’ //其他版本也可以
//EaseUI中,fragment用到了android-support-v4包
compile ‘com.android.support:support-v4:23.1.1’ //其他版本也可以
第3步
设置清单文件
权限部分:
-

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

   
   

   
   

   
   

   

   

   
   
   
   
  < application>中的信息如下:

   
    
        
            

            
        
    

    

    
        
            

            
        
    
    
    
    
    
    
        
            
            
            
            
            
            
            
            
        
    

    
        
            
            
        
    
    

    
    
    
    

    
        
            
        
        
            
        
        
            
        
    
    

    在自己的application中进行初始化:
  /**
     * 初始化客服配置
     */
    private void initKefuConfig() {
        ChatClient.Options options = new ChatClient.Options();
        //必填项,appkey获取地址:kefu.easemob.com,“管理员模式 > 渠道管理 > 手机APP”页面的关联的“AppKey”
        options.setAppkey("1458170906068252#kefuchannelapp47129");
        //必填项,tenantId获取地址:kefu.easemob.com,“管理员模式 > 设置 > 企业信息”页面的“租户ID”
        options.setTenantId("47129");
        // 设置为true后,将打印日志到logcat, 发布APP时应关闭该选项
        options.setConsoleLog(true);
        //appid从华为开发者平台获取

        // Kefu SDK 初始化
        if (!ChatClient.getInstance().init(this, options)){
            return;
        }
        ChatClient.getInstance().setDebugMode(true);
        // Kefu EaseUI的初始化
        UIProvider.getInstance().init(this);
    }

环信客服功能需要先登录然后才能进行聊天,先注册一个账号,注册代码如下:

ChatClient.getInstance().createAccount(username, password, new Callback() {
            @Override
            public void onSuccess() {
                Log.i(TAG, "creat_onSuccess: ");
                isConnected = true;
            }

            @Override
            public void onError(int errorCode, String s) {
                Log.i(TAG, "creat_onError: " + s + i);
                if (errorCode == Error.NETWORK_ERROR){
                    Log.i(TAG, "creat_onError: " + "网络连接不可用,请检查网络" + errorCode);
                }else if (errorCode == Error.USER_ALREADY_EXIST){
                    Log.i(TAG, "creat_onError: " + "用户已经存在" + errorCode);
                }else if(errorCode == Error.USER_AUTHENTICATION_FAILED){
                    Log.i(TAG, "creat_onError: " + "无开放注册权限" + errorCode);
                } else if (errorCode == Error.USER_ILLEGAL_ARGUMENT){
                    Log.i(TAG, "creat_onError: " + "用户名不合法" + errorCode);
                }else {
                    Log.i(TAG, "creat_onError: " + "注册失败!" + errorCode);
                }
                isConnected = false;
            }

            @Override
            public void onProgress(int i, String s) {
                Log.i(TAG, "creat_onProgress: " + s);
            }
        });

username和password自己随便输入就好了。

注册完登录,登录代码如下:
callback与上面的相同

  public void toLogin(String userName,String passWord,Callback callback){
        ChatClient.getInstance().login(userName, passWord, callback);
    }

登录之后就可以进行聊天了,打开聊天页面代码如下:
IMNumber为第1步中记录的IM服务号

  */
    public void toChatActivity(final String IMNumber,final Activity activity) {
        activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                IntentBuilder builder = new IntentBuilder(activity);
                //获取地址:kefu.easemob.com,“管理员模式 > 渠道管理 > 手机APP”页面的关联的“IM服务号”
                builder.setServiceIMNumber(IMNumber);
                Intent intent = builder.build();
                activity.startActivity(intent);
//                Toast.makeText(activity, "开始聊天", Toast.LENGTH_LONG).show();
            }
        });
    }

到这里就已经可以打开环信sdk内置的聊天页面了,并可以发消息。

注意,一定要参考官方的demo,文档真的有点老。

你可能感兴趣的:(android,第三方库)