美文网首页
环信客服SDK集成

环信客服SDK集成

作者: 土豆萝卜君 | 来源:发表于2017-09-05 14:37 被阅读0次

    根据需求研究了下环信的客服SDK, 这两天一直磕磕碰碰的在集成,中间遇到了几个坑,不过在咨询了下技术客服顺利的解决了(我的直接告诉我 技术客服是女的)。不过网上关于环信客服的资料很少,也许是我比较衰,遇到了一些坑吧,所以想把自己集成的流程写下来,希望可以帮助其他人。


    496b4d62c88b77e97563255b4a3f6fff.jpg

    首先官方文档必须要好好的看一遍,毕竟那个还是正版的,是最有权威的。
    环信客服sdk集成官方文档
    环信客服sdk iOS API

    开始集成

    步骤1 首先要下载环信提供的客服SDK 进去选择
    屏幕快照 2017-09-05 上午11.05.55.png

    这里遇到的坑就是


    屏幕快照 2017-09-05 上午11.08.28.png

    我下载商城demo 满怀欣喜的运行 结果给我报错误


    屏幕快照 2017-09-04 上午10.48.20.png

    我问了技术客服,技术客服说 因为项目太大所以上传github时候 给过滤了些文件 导致项目缺少文件,需要重新集成下。不过客服SDK中有相同的商城demo可以运行,如果大家想省事就可以去运行SDK中的商城demo。

    步骤2 SDK下载完成后,文件结构为
    屏幕快照 2017-09-05 上午11.23.13.png

    官方介绍为

    • HelpDeskFramework 为客服SDK,HelpDesk.framework包含实时音视频
    • HelpDeskLite.framework不包含实时音视频
    • HelpDeskUI 为环信提供的单聊UI,可在集成的时候视情况使用
    • BaseFramework 为客服SDK依赖库,在导入HelpDeskFramework之前务必导入
    2.1 把BaseFramework HelpDeskFramework HelpDeskUI这几个库复制到自己的项目中。
    屏幕快照 2017-09-05 上午11.28.15.png

    这里面就出现了坑2 稍后和大家说

    2.2 选中当前的TARGET,向 General → Embedded Binaries 中添加以上依赖库。Linked Frameworks and Libraries 中会自动增加
    屏幕快照 2017-09-05 上午11.32.09.png
    2.3 向Build Settings → Linking → Other Linker Flags 中增加-ObjC(注意区分大小写)
    屏幕快照 2017-09-05 上午11.38.57.png
    2.4 SDK 暂时不支持bitcode,在Build Settings →Enable Bitcode 改为NO。
    屏幕快照 2017-09-05 上午11.42.50.png
    2.5 在工程info.plist文件中,增加隐私权限
    Privacy - Photo Library Usage Description 需要访问您的相册
    Privacy - Microphone Usage Description 需要访问您的麦克风
    Privacy - Camera Usage Description 需要访问您的摄像机
    
    2.5 在工程的pch文件中(没有就新建一个),添加
    #ifdef __OBJC__
    #import <HelpDesk/HelpDesk.h>
    #import "HelpDeskUI.h"
    #endif
    

    如果不需要实时音视频就把上面的代码替换成

    #ifdef __OBJC__
    #import <HelpDeskLite/HelpDeskLite.h>
    #import "HelpDeskUI.h"
    #endif
    

    以上集成需要的步骤就算完成了,当我特别乐呵的运行的时候,项目报错了

    屏幕快照 2017-09-04 上午11.33.18.png

    说我SCLoginManager这个文件没有找到,我就在项目中查找,没有。我就问了技术客服,技术客服跟我说这个文件是商城demo里面的,需要引进来。 我勒个去,我集成的是SDK 为啥还有引进另一个商城demo的文件,不过为了项目的运行我忍了,引进过来。这时候我天真的以为万事具备了。再次运行的时候


    2204830-f0c118fc013fa68d.png

    原来是由于环信客服SDK集成了一些常用的第三方的库,如果项目本身也存在这些第三方的库,就 会引起冲突,删除掉,然后把报错的地方修改成正常的调用即可。


    u=3307292189,2868808571&fm=200&gp=0.jpg

    3 关联App

    3.1 先在 环信管理后台 创建应用
    屏幕快照 2017-09-05 下午1.42.40.png
    3.2 点击应用显示应用的信息( AppKey、Client ID、Client Secret )
    屏幕快照 2017-09-05 下午1.44.20.png
    3.2 在 环信管理后台 注册IM用户
    屏幕快照 2017-09-05 下午1.49.40.png 屏幕快照 2017-09-05 下午1.51.25.png

    点击注册然后输入用户名 密码就可以,当然也可以用代码 去注册。 在没有账号的时候,环信都会让注册,注册的信息都会在这里显示,图中里面的很长的字符串就是我用代码来注册的。

    3.2 移至 环信工作台 创建APP关联 登陆进去后
    屏幕快照 2017-09-05 下午1.59.43.png

    当右上角红色是切换管理员模式和客服模式的按钮,管理员可以创建app关联 ,管理客服,看各种数据各种高大上的权限。 客服模式就是和客户聊天 “客官,不可以呀!”

    然后在 渠道管理 - 手机App - 点击关联IM账户 (如果没有的话可以直接点击快速创建)

    屏幕快照 2017-09-05 下午2.04.03.png 屏幕快照 2017-09-05 下午2.04.10.png
    • 名称 随便
    • AppKey Client secret Client ID 也是步骤3.2中的要记住的
    3.3 在 环信工作台中管理员模式中进入设置 - 企业信息 记住 租户ID即可
    屏幕快照 2017-09-05 下午2.12.53.png

    4 代码初始化

    这里我就写一点简单的初始化代码,和遇到的一点问题 其他的代码看看SDK中的demo 大家应该就懂得了。

     HOptions *option = [[HOptions alloc] init];
     option.appkey = @"***";
     option.tenantId = @"***"; // 上面让记住的租户ID
     option.apnsCertName = @"推送证书名称";  //推送证书的名称
     //Kefu SDK 初始化,初始化失败后将不能使用 SDK
     HError *initError = [[HChatClient sharedClient] initializeSDKWithOptions:option];
     if (initError) { // 初始化错误
     }
     [[HChatClient sharedClient] addDelegate:self delegateQueue:nil];
    
    

    HChatClientDelegate

    - (void)connectionStateDidChange:(HConnectionState)aConnectionState { //网络改变
        switch (aConnectionState) {
            case HConnectionConnected: {
                break;
            }
            case HConnectionDisconnected: {
                break;
            }
            default:
                break;
        }
    }
    
    - (void)userAccountDidRemoveFromServer {//从服务器中删除账户
        
    }
    
    - (void)userAccountDidLoginFromOtherDevice {//从别的客户端登陆账户
        [[HChatClient sharedClient] logout:YES];
        UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"prompta", @"Prompt") message:NSLocalizedString(@"loginAtOtherDevice", @"your login account has been in other places") delegate:self cancelButtonTitle:NSLocalizedString(@"ok", @"OK") otherButtonTitles:nil, nil];
        alertView.tag = 100;
        [alertView show];
    }
    
    

    写代码遇到的问题 就是我发送表情 一直显示的的是转移符 而不是表情图片,解决方法:根据官方demo调试代码 发现需要在启动的时候加入

    [[HDEmotionEscape sharedInstance] setEaseEmotionEscapePattern:@"\\[[^\\[\\]]{1,3}\\]"];
    [[HDEmotionEscape sharedInstance] setEaseEmotionEscapeDictionary:[HDConvertToCommonEmoticonsHelper emotionsDictionary]];
    

    另一个就是 发送定位的时候一直定位失败 解决方法就是在info加入定位的权限

    Privacy - Location When In Use Usage Description 需要访问您的地理位置
    

    相关文章

      网友评论

          本文标题:环信客服SDK集成

          本文链接:https://www.haomeiwen.com/subject/likujxtx.html