对接网易云信IM服务

       这是之前在简书上写的文章,用了一段时间觉得简书功能太杂自己想专注技术方面,所以将之前的文章转移到掘金上。这是一个远程医疗问诊的项目也就是大家俗称的网络医院,其中有些功能是医生通过远程视频帮助患者梳理病情并提供治疗建议或方案。即需要实时音视频和聊天的功能,因为工期和技术的限制,自己写这些功能肯定不现实所以引入第三方,最后决定使用网易云。写本文的目的在于以前一直接触融云、环信等第三方,使用其并不涉及在第三方创建通信ID,网易云与其差别于此故记之。故本文则主要介绍在网易云信创建通信ID的操作过程,并不涉及其他功能。

第一步:

要想使用网易云信的一些功能,首先需要在网易云平台创建一个账号,创建完成之后平台会分配 一个App Key和App Secret,这两个大家应该都知道是什么东西,在此就不多赘述。具体如下图:


第二步:

网易云信账号创建完毕之后就开始了解官方的开发手册,具体如下:



 接口说明

1. 所有接口都只支持POST请求;

2. 所有接口请求Content-Type类型为:application/x-www-form-urlencoded;charset=utf-8;

3. 所有接口返回类型为JSON,同时进行UTF-8编码。

如上可以知道,每次调用网易云通信服务端接口都需要按图中要求进行校验(说的不是废话么....),每次请求接口的时候都需要在请求头传入AppKey和Nonce、CurTime、CheckSum。以及告诉了为什么需要创建通信ID,因为就本项目来说医生和患者只要需要进行IM服务则首先在网易云信上必须先有一个accid账号即使用网易云信功能的凭证依据。

第三步:

找到创建网易云通信ID的API并嵌入到自己的项目中。

创建网易云通信ID请求说明:

POST https://api.netease.im/nimserver/user/create.action HTTP/1.1

Content-Type:application/x-www-form-urlencoded;charset=utf-8

接口描述:

1. 第三方帐号导入到网易云通信平台;

2. 注意accid,name长度以及考虑管理token。


        在本项目中只需要传入accid即可,但为了以后好识别用户也传入了name参数,其他参数皆不传包括token(不指定token值让系统自动生成)。一切就绪之后就需要开始调用该API嵌入自己的项目中了,下图就是我自己封装的调用网易云信创建通信ID的方法:


       其中需要注意的地方就是CurTime单位是秒不是毫秒,所以在Date.now()之后需要除于1000。至于其他的将URL字符串转换成对象并返回、序列化等都属于常规操作不多赘述。最后只需要当医生和患者进行注册时调用该方法就可以在网易云信上为该医生和患者创建一个属于他们自己的accid账号(其实就是通讯ID),在网易云信上他们就有了合法的登陆凭据,就可以进行一些IM的操作(注:实时音视频是付费服务需要额外开启,另传入的accid参数我指定的是注册医生或患者的手机号码,name参数是医生或患者的身份证上的名字,当然你们可以按照自己的想法指定相应的参数)

结语:

       平时用惯了简书、Cnode社区和Github,第一次在掘金上发文章,以前当伸手党当习惯了。以后决定不定期写一写自己的感想和爬过的坑,如有不对的地方欢迎大家拍砖,如能给大家带来启发或帮助则不胜荣幸。


你可能感兴趣的:(对接网易云信IM服务)