腾讯云IM使用总结

腾讯帝国最重要的产品QQ和微信都是IM为基础,相信腾讯云IM也能有很好的体验,我们在项目上准备使用腾讯云通信。

我们项目的基本需求是App中使用IM,实现基本的聊天功能,有一些我们的值班人员通过IM给App的用户提供实时的业务咨询,同时也提供用户和用户之间的聊天。
由于项目App第一期时间紧,先考虑基于H5或小程序,二期再考虑原生实现Android和iOS版本,AppWorker会封装这个组件。
基本流程就是App端或小程序有自己的登陆系统,有二种基本角色:用户(问题咨询者)和服务人员(问题回答者)。用户登陆找到服务人员,然后用do_WebView组件加载聊天网页,实现聊天功能。后期还要逐渐增加其它功能:

  • 自动翻译:用户A输入中文,用户B或服务人员获取到的是翻译完的英语。
  • 自动回复:后面对接腾讯AI助手,相当于用户可以和AI对话
  • 自动分配人工答复:如果AI无法回答,根据值班时间,自动切换到某个值班人员。

1.准备工作

  • 创建云通信的应用,注意SDKAPPID这个值后面会一直要用到。

    《腾讯云IM使用总结》 image.png

  • 点击应用配置,有一些配置必须提前设置好。设置界面如下:

    《腾讯云IM使用总结》 image.png
    基本配置下比较重要的账号体系下的下载私钥和公钥,下载的zip包含公钥和私钥2个文件:private_key,public_key ,这2个文件请保存好。另外还有一个账号管理员需要记录下来,后面需要用它作为服务端API发起的用户Id,这里如截图,值为myadmin.
    《腾讯云IM使用总结》 image.png
    功能配置里比较重要的是设置一些自定义字段。
    Crash是腾讯的bugly,没有尝试。
    群组管理:可以手动创建群组。
    回调配置: 这个设置回调url和那些需要回调,这个很重要,后面也需要用到,后面再解释。
    辅助工具:这个可以不用,可以下载TLS可执行命令来执行。

2. 生成sig值

这个步骤是所有操作的基础,我们这里选择的是 独立模式:用户帐号信息由开发者保存,用户身份验证(比如注册与验密)也由开发者负责。

《腾讯云IM使用总结》 image.png

我们自己的应用后台服务需要提供基本的签名功能,传入 参数 sdkappid 、私钥、identifier,返回一个usersig值,其中

  • sdkappid:就是上面准备工作里应用id
  • 私钥就是上面准备工作下载的密钥文件中的private_key文件内容
  • identifier就是我们业务系统的用户唯一标识
    TLS后台API使用手册提供了Java和其它语言的库我们可以集成到我们的业务服务上。我们平常调试可以用它提供的工具来调试
    《腾讯云IM使用总结》 image.png
    以后所有的对腾讯云的http请求都必须包含identifier和usersig,腾讯云会验证合法性。

3. 用户登陆

这个登陆指对腾讯云IM的login,因为我们用的是独立模式,则这个动作的前提是这个用户已经成功登陆了业务系统。
这里有二种方式登陆:

  • 第一种是请求咨询的用户在App端通过WebSDK的login函数
webim.login(loginInfo, listeners, options,cbOk,cbErr)

注意:参数appIDAt3rd和sdkAppID参数值一样。

  • 第二种是通过单个或批量导入,比如回答咨询的服务者从没有登陆过,但是用户想咨询服务者,则会遇到问题。我们可以考虑当服务者注册的时候就单个导入到腾讯内部创建一个内部ID,使没有登录腾讯云的应用自有帐号能够使用腾讯云服务。参考导入文档

4. 发送接受消息

这里指客户端发送和接受消息。WebSDK是基于H5和小程序的IM的共有js库,它们的差别就是用H5绘制聊天界面还是用小程序绘制,真正的通讯机制完全一样。
不过和Android,iOS的原生比较,WebSDK不支持很多功能,比如不支持短视频,不支持语音发送(支持解析),不支持地理位置(支持解析)。

5. 腾讯云后端服务和回调服务

腾讯云提供了后端云服务REST API来实现很多功能,很多情况需要我们的业务服务端调用这些API来处理IM的一些操作。
这里要注意的一个细节是所有的后端REST API都是以管理员身份来获取UserSig和其它操作,在我们的前期准备里管理员是myadmin。
在应用配置里如果配置了我们的业务服务回调URL,在IM聊天中就会自动触发我们的业务服务,通过这个回调和腾讯云后端服务,我们能完成我们的后期几个需求,以下是几个基本流程图:

《腾讯云IM使用总结》 image.png

这个流程中,所有消息都先经过我们的业务系统来决定怎么回复,谁回复,包括如果需要翻译也可以加到流程中。

这里提一下,后端服务腾讯提供了一个
Web工具能很方便的调试云API。

    原文作者:voxer
    原文地址: https://www.jianshu.com/p/91c9adf616be
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞