云旺接入常见问题

更新时间:2018/04/24 访问次数:65548

通用问题

云旺(OpenIM)收费吗?

完全免费。

 

云旺(OpenIM)支持的平台?

Android,iOS,PC Native,H5

 

怎么接入云旺(OpenIM)?

分为以下几步

    1 加入百川,创建应用,下载SDK

    2 导入账号体系

    3 在客户端app集成SDK。Android,iOS集成,h5集成。

 

云旺(OpenIM)界面可以定制吗?

可以,聊天,最近联系人等界面看到的内容基本都可以定制

定制列表

 

云旺(OpenIM)有H5版本吗?

我们提供KIT +  JSSDK的H5版本云旺(OpenIM)。快速集成的话只需要几行代码就可以支持。

JSSDK支持单聊,群聊的接口,可以使用这些接口定制个性化的H5的IM。

 

有哪些APP集成了云旺(OpenIM)?

阿里系APP:阿里系的大部分APP,都集成了云旺(OpenIM)。 比如:旺信,手机淘宝,去啊,淘点点等等

外部APP:橙牛违章管家,河狸家,美丽神器等等近百个APP

 

在哪里可以体验下OPENIM?

可以下载demo试用。

或者在软件市场下载旺信,橙牛管家等APP试用,他们都集成了OpenIM。

我需要技术咨询,怎么联系开发和技术支持?

联系官方客服:openim官方客服

或者加开发者接入旺旺群:959430770(已暂停提供技术支持)

 

OpenIM的账号体系是什么样的,自有账号体系可以集成云旺(OpenIM)吗?

可以。如果你已经有自己的账号体系,可以导入到云旺(OpenIM),参考服务端集成文档。

如果你还没有,可以考虑接入百川下的另一个OpenAccount产品,云旺(OpenIM)可以使用OpenAccount登录。

 

我有多个APP,之间需要互通可以吗?怎么申请?

可以互通,请在技术支持群(959430770)里面联系IM技术支持,我们会尽快为你开通。

 

在集成UI的方式下,我想发消息给不同APPKEY的联系人,该怎么操作?

请使用

YWUIAP.getChattingActivityIntent(String targetUserId,String targetAppKey)

其中第二个参数是消息接收方的APPKEY。

 

集成大概需要花多少时间?

SDK集成时间一般为几个小时到几天。如果不需要定制UI,几行代码就可以完成集成。(需要集成者有基础开发能力)

如果需要做UI,个性化消息等定制,根据需求,可能需要几天到一周的时间。

 

聊天记录保存多久?

客户端会保存所有历史聊天记录,永不失效。

服务端会保存最近一个月的聊天记录,如果你换了手机,那么可以从服务端漫游最近一个月的聊天记录。

 

稳定性怎样,会不会丢消息?

我们对于OpenIM要求是可用性99.9%,也就是一年的不可用时间不超过4个小时。

丢消息对于IM来讲是严重bug,有旺旺12年IM技术保障,我们会确保不丢消息。

 

安全性怎么样?

复用了整个淘宝系的安全反垃圾机制。分别包括,敏感词过滤(kfc),钓鱼网站监测,反欺诈、反垃圾

 

请问云旺(OpenIM)在海外能用么?

可以,我们复用淘宝的数据中心,在海外也有布点。

 

群聊的人数上限是多少?

2000

 

群个数有无上限?

目前对群个数没有限制,可以无限制创建

 

OpenIM 有没有好友系统?

不提供,需要开发者自己维护。因为好友关系等数据是APP的核心数据,OpenIM出于数据安全考虑,不介入到APP的核心数据。

 

支持自定义消息吗?自定消息可以用来做什么?

支持。可以用来定制和业务相关的特殊消息,比如一个表格,一个任务,一个加好友的特殊消息等。

目前支持自定义消息的端:Android,iOS,H5(9月份)

 

云旺(OpenIM)有在线的API文档么?

在下载的sdk,demo包内,API的文档在doc目录下。

 

我不希望集成带UI的版本,我的业务比较特殊,希望自己实现UI,云旺(OpenIM)支持吗?

推荐集成带UI的版本,原因是开发成本低,定制能力强,基本上你看到的界面都可以定制。

对于特殊业务,可以自己实现UI,集成IMCore,IMKit也是使用依赖IMCore的。详细请参考Demo程序中的ConversationSampleHelper文件

 

如果集成工程中出现问题,怎么排查?

我们有SDK内置了诊断工具,可以协助排查问题。

android下唤起方式:集成了openIM的app打开,然后android 的菜单键按一下(出现切换app界面),然后连续单击3次home键。再打开app,就可以看到小气泡了

iOS下唤起方式:集成了openIM的app,任何界面屏幕上两个指头快速点击十次。

诊断工具能够迅速查明是集成的问题还是OpenIM的问题,可以上传日志,方便技术自持排查问题。

 

服务端

OpenIM提供了哪些服务端接口?

用户管理接口。使用场景:批量导入用户,用户上传,实时更新用户

群管理接口。使用场景:服务端发起群的管理,和企业协同,社区等场景结合

导出聊天记录接口。使用场景:查询某个用户的所有聊天对象,和某个用户的所有聊天记录

使用IM通道群发消息接口。使用场景:模拟一个运营账号,给部分或者全部用户推送运营消息等。

//open.taobao.com/api/api_cat_detail.htm?cat_id=20654&category_id=102

 

客服体系

接入OpenIM客服功能需要做什么?

    1、接入OpenIM

    2、申请客服账号(个人买家账号),绑定页面绑定好

    3、下载千牛,使用OpenIM客服功能了

 

客服体系的客服和客户端分别用什么工具?

客服端使用千牛。支持PC,Android,iOS

客户端就是云旺(OpenIM)

 

客服体系能否匿名?

可以通过服务端账号导入接口生成匿名账号来支持。

 

新申请账号被冻结怎么办?

登录淘宝首页,按提示开通

 

账号绑定不上怎么办?

目前限制开发者账号和卖家账号开通OpenIM客服功能,请新申请账号开通

 

在哪里设置分流?

安装绑定页面的提示,下载千牛,打开对应的插件

 

Android常见问题

怎样自定义联系人头像和昵称

参考demo的UserProfileSampleHelper.java文件。自定义头像可以是url也可以是本地地址,如果是本地地址请注意以下两点:

(1)一定要把头像拷贝到你自己的工程的res/drawable目录下

(2)文件名称必须以“pic_1_”开头

 

注册了IYWConversationUnreadChangeListener监听,但是有未读数变更时没有收到回调?

该监听需要在登录成功之后再添加,登录成功之前添加是无效的。

 

YWAPI.getIMKitInstance()返回null?

没有把openIM的资源文件拷贝到你的工程中或者你的AndroidMainfest.xml不完全,请参考http://baichuan.taobao.com/portal/doc?articleId=385#ss0,严格按照该文档要求,把需要拷贝的内容拷贝到你的工程中。

 

OpenIM怎么加好友?

OpenIM没有管理好友关系。好友的列表,需要自己处理。 可以使用自定义消息的方式,虚拟一个 [好友消息]的后台用户,添加好友时,发送消息给自己的服务器,服务器发送自定义消息到客户端,客户端来进行同意,就建立一个好友关系。不同意,则不建立。 

 

从百川下载的SDK里面包含很多jar包,我只用IM功能,这些jar包都需要吗?

http://baichuan.taobao.com/portal/doc?articleId=325 从这里下载IM的DEMO,如果只集成IM,那么只需要该DEMO的libs目录下的jar包和so库,其他都不需要。

 

怎么发送自定义消息?

参考http://baichuan.taobao.com/portal/doc?articleId=386#ss7

 

渲染layout失败,报以下错误:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.tiantianai/com.baomihua.aliyun.chat.ContactsActivitySample}: android.view.InflateException: Binary XML file line #10: Error inflating class <unknown>

    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)

    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)

    at android.app.ActivityThread.access$700(ActivityThread.java:131)

    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1228)

    at android.os.Handler.dispatchMessage(Handler.java:99)

    at android.os.Looper.loop(Looper.java:137)

    at android.app.ActivityThread.main(ActivityThread.java:4866)

    at java.lang.reflect.Method.invokeNative(Native Method)

    at java.lang.reflect.Method.invoke(Method.java:511)

    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)

AndroidManifest.xml里面注册对应的activity的时候theme设置错误或者没有设置theme,按照DEMO中的方式注册activity

 

怎么使用OpenIM发送地理位置?

(1)调用YWMessage message = YWMessageChannel.createGeoMessage(double latitude, double longtitude, String address)创建一条地理位置消息;经纬度和地址需要开发者自己获取,OpenIM不负责获取这些信息。(开发者可以使用百川下高德地图SDK实现定位功能)

(2)调用YWConversation.getMessageSender().sendMessage(message, 120, null);发送地理位置消息;

(3)OpenIM收到地理位置消息后会回调CustomMessageAdvice.getCustomGeoMessageView(Fragment fragment, YWMessage message);获取用户自定义的地理位置view,具体实现可以参考DEMO的ChattingCustomAdviceSample.java文件。

 

安卓加入LIB包后,出现Unable to execute dex: method ID not in [0, 0xffff]: 65536   这个怎么办?

方法数超限了,这个是Android的问题。IM功能加入了,只是触发方法数达到上限。http://developer.android.com/tools/building/multidex.html

建议使用官方的解决方案,就算IM加入不触发上限,后续功能的持续加入,可能也会触发方法数上限。

 

Studio配置说明

1、打开Android Studio,并打开您的工程 2.在菜单中找到Import Module按钮,点击导入下载的SDK

2、选择SDK根目录并点击Finish按钮:

3、导入完成后,目录结构中会出现OneSDK Module

4、右键点击app,选择Open Module Settings以建立对SDK的依赖

5、在Modules中选择app,并在Dependencies目录中点击Module Dependency

6、选择:OneSDK并点击OK按钮

7、点击Rebuild Project按钮重新构建工程

 

 

恭喜,截至当前您已经完成了SDK的集成

 

 

8、根据您的工作环境不同,可能会遇到以下问题

        8.1、若遇到aapt finished with non-zero exit value 1 异常,请将SDK的build.gradle中的 buildToolsVersion 设置为与app中build.gradle文件的buildToolsVersion相同,然后Rebuild Project。

        8.2、若遇到module 合并时的重名冲突问题,请尝试重命名冲突的文件并Rebuild Project。

        8.3、请注意SDK要求java1.7以上的环境。

开发工具可能导致的问题

如果您使用Eclipse+ADT开发工具,请使用adt-bundle-windows-x86-20130219以上的版本。 目前发现使用20130219版本,会出现类似以下的错误 :

1
java.lang.RuntimeException: Unable to instantiate application   
1
com.taobao.sdk.openimui.MyApplication: java.lang.ClassNotFoundException: Didn't find class

找不到WxProvider错误的解决

1
2
java.lang.IllegalArgumentException: Unknown URL content:
com.alibaba.openIMUIDemo.aliwxprovider/conversation/iwangxintestpro1

请确认AndroidManifest.xml正确配置了WXProvider。具体参见文档前部的资源文件准备修改WXProvider一节。

登录遇到的问题

1、错误码:-2

        原因:登录超时,请检查网络是否畅通  

2、错误码:1

        原因:  

                2.1、用户不存在,请确认登录的用户已经添加到服务器

                2.2、用户不存在,请确认APPKEY是否正确设置

3、错误码:2 

        原因:密码错误,请确认登录的用户密码信息已经添加到服务器

代码遇到的问题

1、OpenIM怎么获取最后一条消息及相应时间?

  • 解决方法:
    • mYWAPI.getAccount().getConversationManager().getConversationList().get(0).getLatestTime();
    • 特别注意:获取到的时间单位是秒。

2、加入proguard.cfg内容后,导致打包报错,或者最终的安装包会crash

  • 解决方法:
    • 打包报错,可以参考下网上的解决方法,把方法名拷贝出来增加到混淆说明中
    • 安装包crash,在混淆代码中增加 -keep class com.taobao.wireless.**{*;}

iOS常见问题

UI显示遇到问题

头像和昵称如何设置【IMKit】?
解决方法:
当IMSDK需要显示头像和昵称时,会调用您通过setFetchProfileBlock:接口设置的block获取profile
在这个Block中,你根据IMSDK传入的Person对象,获取到对应用户的profile信息,一般是通过服务器接口异步下载;
当获取profile成功后,你通过progressBlock和completionBlock告知IMSDK,progressBlock用于获取到部分信息例如仅昵称时就通知IMSDK及时更新显示;
详细请参考iOS Demo中-[SPKitExample exampleSetProfile]方法及调用时机。
 

如何修改UI自定义配置?

解决方法:
从WXOUIModuleResources.bundle中找到OpenIM-Theme.plist文件,尝试修改其中的选项并运行观察效果。
 

如何定制导航栏?

IMSDK没有控制导航栏,您需要自己定制导航栏,请参考iOS Demo中-[SPKitExample exampleCustomGlobleNavigationBar]方法。
 

消息收发遇到问题

进入后台时无法接收到苹果的系统推送?

解决方法:
检查推送证书是否已经上传,包括导入密码是否设置
目前OpenIM只支持生产环境的推送,因此客户端必须使用Distribution证书的AdHoc Provision打包,请务必检查是否可以正常获取到DeviceToken
获取到DeviceToken并设置给IMSDK,登录IM成功后,控制台会打印DeviceToken上传成功的Log,请确认是否有该日志
 
如何调试苹果的系统推送?
现象:目前OpenIM只支持使用生产环境推送证书,因此你只能使用生产环境的AdHoc Provision打包,才能收到苹果的系统推送。但是AdHoc Provision打包的APP不支持Xcode的单步调试。
解决方法:
你可以先使用AdHoc Provision打包,登录IM成功后,进入后台。给这个帐号发送一条消息,确保能够收到APNS推送。
然后可以在Xcode中使用开发环境的带通配符的Provision打包,覆盖安装到这个设备上。使用通配符打包的App不会获得DeviceToken,因此不会将服务器端的DeviceToken清除。
这时候再收到消息时,你就可以单步调试了。
 
系统推送中显示的人名如何设置?  
解决方法:
在登录信息中,你需要提供当前登录帐号的昵称;
在登录成功后,IMSDK会通过Profile接口获取到当前帐号的昵称;
由于IMSDK会缓存之前设置的profile信息,因此为了确保修改代码后测试的有效性,请删除原App后调试;
APNS Push显示的是消息发送者的昵称,修改代码后登录消息发送者的帐号发送消息,查看对方接收到Push后的效果
 
调试消息收发,对方没有收到【IMKit & IMCore】?
解决方法:
检查收发客户端所使用的AppKey是否一致。
检查消息发送目标ID与接收方登录的ID是否一致。
另外,初次联调消息收发时,建议使用官方Demo作为消息接收方或者消息发送方,以便确保一端是稳定的版本,便于调试另外一端的功能。在Demo中将初始化IM函数的AppKey参数替换为您的AppKey,即可与您的App进行消息收发。
 

登录遇到问题

初始化101错误,前缀获取失败 【IMKit & IMCore】
解决方法:
请确认初始化传入的AppKey是正确的;
确认网络状态是否正常;
如果是模拟器,请使用模拟器的Safari访问www.taobao.com以确认模拟器能够访问网络。(iOS8+的模拟器存在bug,Mac网络正常时,模拟器却无法访问网络);
 
登录失败,提示已有登录线程【IMKit & IMCore】
解决方法:
主动发起登录后,在CompletionBlock返回前,再次发起登录会提示该错误;
已经登录成功某个帐号后,如果没有注销该帐号,再次发起登录会提示该错误;
一般地,你不需要重复发起登录,如果需要停止当前的登录操作,请先调用注销;
 
登录失败,提示用户名不存在或者密码错误【IMKit & IMCore】  
解决方法:
确认该用户I帐号已经被导入IM服务端
确认密码的大小写是否正确,密码是大小写敏感的
 

API使用有问题

如何发送自定义消息?
解决方法:
请参考iOS Demo-[SPKitExample exampleSendCustomMessageWithConversationController]和-[SPKitExample exampleShowCustomMessageWithConversationController]方法。分别用于发送和显示自定义消息。
 
添加了监听,但是没有回调到?  
SDK中有不少添加监听的接口,如果您添加了监听,但是没有回调到,请检查:
如果您是调用Service的添加监听接口,可以检查一下该Service对象是否为nil;如果为nil,可能的原因是您还没有获取并初始化IMCore或者IMKit对象。
 

配置环境遇到问题

-ObjC编译选项【IMKit & IMCore】
 
现象:
初始化或者调用接口时Crash  
Terminating app due to uncaught exception
 'NSInvalidArgumentException', 
 reason: '-[YWAPI syncGetPrefixOfAppKeys:getError:]: 
 unrecognized selector sent to instance 0x7fbd4bc4e790'
解决方法:
遇到上述提示类似的错误,请检查您的工程设置中, Build Settings > Lnking > Other Linker Flags中是否已经添加-ObjC选项,并且请注意大小写是否正确。
 
链接失败,提示"_ALBBOpenAccountSession ... symbol(s) not found"  ?
解决方法:
如果没有使用OpenAccount,去除链入TaeWXSDKForFree.framework
 
IMSDK资源文件或者身份图片yw_1222.jpg没有添加【IMKit & IMCore】?
现象:
弹出空白页面并提示或者直接crash,提示无法找到nib文件
Application tried to push a nil view controller
 on target <WXOUINavigationController: 0x7fcdcac69b90>.
解决方法:
从SDK包中找到WXOpenIMSDKResource.bundle资源包,将其拖到您的Xcode工程中,确保其能被复制到您App的MainBundle中。
将专属于您的yw1222.jpg身份图片,添加到您的Xcode工程中,并确保其能被复制到您App的MainBundle中。
 
UTMinit、UTDID、SecurityGuard等库链接冲突?
解决方法:
可能是因为您已经链接了百川平台的TAESDK,该SDK中包含了上述静态库。您只需要将上述冲突的库从您工程的链接列表中去除。
 
UISDK资源文件没有添加 【IMKit】?
现象:
打开会话列表或者聊天页面时crash
Terminating app due to uncaught exception
 'NSInternalInconsistencyException', 
 reason: 'Could not load NIB in bundle: 'NSBundle </Users/huanglei/Library/Developer/CoreSimulator/Devices/D9D2B27D-6788-41C9-9A5E-F264D61C56AD/data/Containers/Bundle/Application/821C05D7-8551-4DBE-9332-A0510A015808/WXOpenIMSampleRelease.app> (loaded)' 
 with name 'SessionListViewController''
解决方法:
从SDK包中找到WXOUIModuleResources.bundle资源包,将其拖到您的Xcode工程中,确保其能被复制到您App的MainBundle中。

FAQ

友盟崩溃反馈

返回
顶部