没有看到账号导入的接口,登录鉴权时不需要先导入账号吗?

登录鉴权不需要导入账号,账号导入是账号托管功能,登录鉴权过程和账号托管是两个独立功能,后续可能会提供账号托管的能力。

怎么判断消息发送成功?

接口调用返回成功就认为是成功了,消息发送和下行是异步处理的,消息请求包含了uuid用于去重。

目前单个群成员个数最大是多少,怎样提高限制?

限制是500,目前邀测阶段暂不放开,后续会考虑不同套餐有不同的限制。

支持苹果、小米、华为等手机三方推送通道吗?

暂不支持,在规划中,即将推出。

客户端SDK中只有拉取本地会话,怎么拉取服务端会话?

SDK中有同步服务端会话的机制,并且保证会话的状态是最新的,因此正常情况只需要使用拉取本地会话接口即可。会话相关的最新变更会通过会话的事件通知上层,需要及时处理。

为什么重新安装或者长期不登录无法拉到会话?

多天不登录(包括首次登录)或者未登录期间消息过多,刚登录的时候SDK会和服务端同步最新的会话,通过AIMConvListListener中的OnRefreshedConversations一次性通知所有变更。因此上层一定要处理OnRefreshedConversations事件。处理的方式建议是add or update

删除会话该调用什么接口?

调用Hide接口,这个接口有多端同步功能,功能上和删除是一样的。内部实现为软删除,会把会话的status设置为0。

RemoveLocalConversation这个接口的作用是什么?

这个接口会从本地硬删除会话信息、会话的历史消息、群成员,这个接口只用于群被踢或解散的情况,具体case在群解散或被踢的场景下会解释。

为什么只有会话extension和user_extension变更事件,但是没有主动改变这两个字段的接口?

extension和user_extension存放了会话的重要信息,也有部分服务端需要使用的信息,出于安全考虑,不开放客户端修改的能力,如果需要修改需要服务端开放固定功能的接口来修改。

local_extension是什么作用?

上层可能要给会话定制一些额外的本地配置(比如显示是否有人at我),可以用UpdateLocalExtension来实现这个功能,此字段不同步服务端,没有多端同步能力。

清红点接口ClearRedPoint为什么要带上mid参数?

这个mid一般情况都是会话的最后一条消息。红点数目前主要是客户端计算,此参数主要用于多端同步的情况下计算另一端的红点,因为清红点事件可能和新消息在同一波推送中下来,因此需要计算清红点到底清到哪一条消息。避免把新消息的红点也清掉。

SDK不把最后一条消息的mid带上的原因是因为SDK内部和上层是解耦的,可能存在SDK已经更新了最后一条消息但是上层还未更新的情况,遵循所见即所得原则,需要上层传上层“看到”的最后一条消息的mid。

SetActiveCid接口是干嘛的?

等于上层的选中会话操作,这种情况下SDK内部不会计算红点,并且能保证多端同步。

怎么创建群聊?群聊的成员限制是多少?

创建群聊使用CreateGroupConversation接口,群成员通过入参的uids字段设置,sdk内部会对uids去重,不过具体成员限制是不同的服务端接入方确定的,如果超过数量会返回上层错误。

为什么收到了群解散或者被踢的事件,拉会话列表的时候还是能拉到会话?

收到解散和被踢事件,SDK会把对应的会话status设置为CONV_STATUS_DISMISSED或者CONV_STATUS_KICKED状态,并通知上层OnGroupDismissed和OnGroupKicked事件。拉取会话的时候,会拉取除了CONV_STATUS_HIDE状态的所有会话,因此解散的和隐藏的也会拉取到。

这么做的原因是避免用户不知道自己解散或者被踢以为丢会话了,通用的做法是切换到CONV_STATUS_DISMISSED或者CONV_STATUS_KICKED时给用户一个弹窗提示,然后调用RemoveLocalConversation删除本地会话(会同步删除消息,群成员等)。

拉取群成员接口ListAllMembers为什么有三个回调,该怎么使用?

目前服务端不会推送群成员变化,需要通过ListAllMembers主动去拉取,OnLocal会先返回本地的,可用来先在界面上展示,OnRefresh返回服务端数据,可用来刷新界面,SDK会存储这些数据,成员以OnRefresh返回为准。