关于java服务端接入腾讯云IM的一些萌新操作

    刚进入新的公司不久,新的公司有做直播的需求,虽然刚开始就听了会议,但是一直处于完全懵逼的状态,整场会议都是满脑子问号,“他们在展示的是什么?”“什么M?是OOM还是什么?”“什么S??到底是什么?”“什么流?再说什么啊”,然后结束会议后大佬给了我一个腾讯云账号,结果我一直登录不上去。。就去继续熟悉业务了,也没有继续看直播相关的知识。

直到上周大佬和我说,直播的业务我已经写好了,剩下的你来写吧,我慌乱的赶紧“好好好”,然后打开大佬给我创建的任务发现一项“创建直播时要生成IMid返回”,我开始彻底恐慌起来了,这是什么东西啊?要怎么生成啊?焦急的我赶紧光速动起我生锈的脑袋和僵硬的手指,一边百度一边思考,百度告诉我这就是一个聊天室id,id嘛,应该就是保证唯一性吧,不行,赶紧问问朋友,结果他也没有做过这种业务,给了我一个uuid的想法,难道真是这样嘛?我开始恍惚了,但是依我看了一千集柯南,五部JOJO的经验来看,绝对不可能这么简单,这么简单大佬咋会特意留给我。思考半天无果,这不是浪费功夫么,还是硬着头皮决定还是问大佬好了,虽然真的很不想打扰大佬(麻蛋明明每天问十个问题已经很打扰了好么),颤颤巍巍在输入框打出“大佬,id是生成一个不重复的自增id么?”,大佬很快的做出了提示,“先接入腾讯云的IM看下,生成id,保存下来就好了”,看到这句话我光速的记下来一个关键词“腾讯云IM”,然后我就要!

开始百度腾讯云IM,出来一大堆东西,一个个点开,然后感觉完全都不是我要的东西。。不能继续浪费时间了,赶紧向老板求救让我登录腾讯云看看,结果老板也不是很会登录,又浪费了时间费了九牛二虎之力终于登陆了腾讯云,光速搜索找到了IM,我以为我马上就要知道生成IMid的完美方法了,结果一打开发现,这些是什么???问号更多了,顺着它的菜单点下去,终于在群组管理里看到一个东西,虽然只有一条数据,但是我光速关注到它闪亮的“群ID”这个词,我觉得我盲生找到了华点,肯定就是这个!大佬让我拿到的必然就是这个!我立刻就要拿到了!

然后呢?怎么获取?我又开始百度了,总算找到了一些蛛丝马迹,java服务端接入腾讯云IM的话是要调用API,我名义上是要拿到群id,实际上是要在创建直播的时候创建聊天室,我真正要做的是通过api发送请求给腾讯云让它创建一个聊天室并发id返回给我,想到了这些再返回来看腾讯云的API文档,直接定位到服务端API。

第一章说生成UserSig,也不太明白,看就完事了,这章第一句话就说了“UserSig 是用户登录即时通信 IM 的密码,其本质是对 UserID 等信息加密后得到的密文”,然后下文是教你生成UserSig,刚开始第一步我直接省略了,这个网上真的有,按他的指示做就行,总得来说就一句话你得先购买腾讯云IM这个服务。下文将如何生成,不看别的直接看服务端计算UserSig,讲了一堆,其实重点在蓝色小框的注意里。

服务端生成UserSig

上面那段话总的意思就是算法是这样的但是仅仅作为demo实验,真的生产还得看粗红线的地方。点进去:

UserSig

然后我们是java,点进去就行了,里面是这个算法的代码实现,一定要把这两个文件都下载下来。

算法

这个就是密钥生成的方法,放到自己的代码里,传入参数用就完事。其中有一处是关于它用的base64导入的包,如果你的java版本很高(比如java11)会报错,它导入的这个包看包名可以看出是sun公司的JDK的内部API,目前已被替换,此时你可以换成低版本的java(java8是可以的),或者使用其他的base64包(util包下的)代替即可,还要注意生产环境是什么版本。

base64

接下来是如何调用API,我的目的是创建群组,那就看这里就好啦。

创建群组API

    点进去可以看到它有请求示例的:

请求示例

复制下来参数改成自己的就可以,可以先用自己的参数写一个本地的示例请求一下看成功不成功。关于下面几个请求参数如下:

请求参数

    注意这里的密钥不是我们的参数,把这个复制出来在辅组工具的生成UserSig里生成的才是,放在代码里就是用我们下载的代码生成的。

    基本就这些,写代码的时候,可以把appid之类的写在yml配置文件中(我们用的springboot),然后到时候再代码里拼接示例那样的请求,通过RestTemplate发送请求就可以啦。

其实整个过程的代码很简单的,就是前期没有好好准备导致找东找西浪费了很多的时间,其实这种东西最好是直接看官方文档,可以百度几个示例做理解引导。

*最后提交了代码还是被大佬指出几处不足orz~,不过大佬是很好的人,技术很好也不会凶人或者嫌弃什么的,是很厉害的人,嘛嘛,还有我的朋友,他虽然没做过这个,但是我在我工作中也帮助了我很多,就感觉今年很棒,遇到的人都很好,也会是很积极向上的一年呐~~加油

你可能感兴趣的:(关于java服务端接入腾讯云IM的一些萌新操作)