融云IM接入记录(1)——单聊

本文详细记录了使用融云SDK实现单聊功能的过程,包括跑官方Demo、理解基本概念如App Key/Secret和Token,以及遇到并解决的坑,如权限冲突和库缺失问题。适合初学者参考。
摘要由CSDN通过智能技术生成

前言

  • 本篇为开篇,会涉及很多基本的东西,所以篇幅较大,若是觉得行文啰嗦还请各位大佬不要打我。
  • 本篇目的,是从0开始到实现单聊则打住,后续的特定需求会新开特定篇来写。
  • 若是跟着文章走,遇见了坑请看文末的坑总结章节,相信很快你就能成功接入。
  • 去融云开发平台申请key什么的我就不说了,会申请QQ号就会申请这个
  • 有什么问题请直接留言指出,欢迎批评指正。

跑个官方Demo压压惊


不管怎样,接入三方SDK最快的方式——官方Demo
所以起手我们还是把Demo打开玩一玩

相关资料:
融云IM Demo
融云新手指导
融云Android SDK集成指南
融云Server开发指南
融云开发者平台
融云sdk下载地址
PS:API调试入口:我的控制台——>左侧栏目API调试

运行效果:

Demo在手,天下我有。

分析:

来一个感性的认知。
从这个Demo来看,它的使用场景基本是:
点击一个列表item ——> 进入点对点的聊天界面。
在这个聊天界面内有可以发送许多类型的消息。地图位置,图片,文本等等。

总结下特征就是:

  • 聊天模式(点对点)
  • 消息类型(多种)

信息很有限,不过也是最直观的东西,所以我准备以此作为一个切入点来进行聊天的学习。

知识点铺垫


虽然Demo已经跑起来了,但是我还是懵逼的,我们还需要了解下融云相关的知识点。

基本概念

基础概念篇幅太大,其中包含业务篇,开发篇,我准备划俩个相对重要的,其他的则不作赘述,具体参考:http://www.rongcloud.cn/docs/quick_start.html#basic_concept

App Key / Secret

App Key / Secret 相当于您的 App 在融云的帐号和密码。是融云 SDK 连接服务器所必需的标识,每一个 App 对应一套 App Key / Secret。

Token

  • Token 即用户令牌,相当于您 APP 上当前用户连接融云的身份凭证。每个用户连接服务器都需要一个 Token,用户更换即需要更换 Token。每次初始化连接服务器时,都需要向服务器提交 Token。
  • Token 称为用户令牌。
  • Token 则是您 App 上的每一个用户的身份授权象征。
  • 您可以通过提交 userId 等信息来获得一个该用户对应的 Token,并使用这个 Token 作为该用户的唯一身份凭证与其他用户进行通信。
  • Token 的主要作用是身份授权和安全,因此不能通过客户端直接访问融云服务器获取 Token,您必须通过 Server API 从融云服务器 获取 Token 返回给您的 App,并在之后连接时使用。详细描述请参考 Server开发指南中的用户服务和获取Token方法小节。

官方流程图:

分析:
我们的最终目的是通过connect方法去连接聊天服务器,但是官方服务器需要我们带Token,但是token我们没有并且也不能自己维护token,所以我们就需要去请求服务器拿token,然而要拿这个token我们就需要从本地拿到我们登录时得到的userId作为一个请求参数去哪token,这样一个流程走下来我们就能去连接聊天服务器了。

那么我们如何获取一个测试token呢?
这就要用到官方提供的API调试工具了,接着往下看。

Api调试的的使用


利用Api调试获取测试token

最开始我就PS了,API调试入口:我的控制台——>左侧栏目API调试
这个东西在我们初期调试时很重要,因为你也可以看到token是通信必须,而我们在前期服务器没调试完成的情况下,**如何来拿这个token呢?**这个时候就需要用到api调试这个功能。

如图:

可以看到这里我们获取到的信息是:

userId:zj666
name:测试用户呵
portraitUri:https://ss3.baidu.com/-rVXeDTa2gU2pMbgoY3K/it/u=225869644,1383753585&fm=202&mola=new&crop=v1

请求结果: 
{
    "code":200,
    "userId":"zj666",
    "token":"wxS1DLbYEHlYRvEGldlHlLv9HaIuPBiUqpl0jm19YznutxcjH0D1Z2Yo81ijEZhZLPWs7qwNNlTGuKduIiTDBg=="
}

一顿操作猛如虎


来不及解释了,带上你的老年卡赶紧上车吧,滴,滴滴。

SDK引入

SDK下载地址:http://www.rongcloud.cn/downloads

既然是学习,我就全勾选下载了。

汇总

Name Type Desc 引入姿势
IMKit 界面 融云 IM 界面组件 Import Moudle
CallKit 界面 融云音视频界面组件 Import Moudle
IMLib 融云 IM 通讯能力库 armeabi, armeabi-v7a, arm64-v8a, x86 Import Moudle
CallLib 融云音视频核心组件 armeabi-v7a, x86 Import Moudle
LocationLib 融云位置相关库,高德地图的低版本jar包。 copy jar int your libs direct
RedPacket 融云红包相关库 Import Moudle

另外一点疑问,如图:

一般来说Kit和Lib都下载,因为它lib里边的库不全,但你用的话可以选择性的用,但是一点,用Kit必用Lib,但Kit不是必须的。

引入后的项目目录结构

配置文件

gradle文件依赖

dependencies {
   
    //kit 内依赖了lib 所以不必再依赖lib 又因为第一行 fileTree ,所以不必再额外依赖location jar包
    compile project(':IMKit')
    compile project(':CallKit')
    compile project(':RedPacket')
}

IMLib Module # AndroidManifest.xml

<meta-data
    android:name="RONG_CLOUD_APP_KEY"
    android:value="您的应用 AppKey" />

App Module # AndroidManifest.xml (位置依赖相关)

<meta-data
    android:name="com.amap.api.v2.apikey"
    android:value="高德地图的 AppKey" />

App Module # AndroidManifest.xml (FileProvider)

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="您的应用包名.FileProvider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name=
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值