融云每个应用提供开发与生产两套环境,两个环境之间数据隔离,分别提供不同的 App Key。应用默认仅启用开发环境。如需使用生产环境的 App Key,必须在融云开发者后台申请上线并通过。生产环境的 App Key 可以用于应用正式发布以及上架应用市场。
请勿将开发环境的 App Key 用于应用正式发布以及上架应用市场。如果您误将开发环境的 App Key 用于正式发布的应用,请尽快将客户端和服务端替换为生产环境的 App Key(服务端还需替换 App Secrect),并通知已经下载的客户强制升级。更换 App Key 后,所有客户必须重新获取 Token 才能与融云建立连接。
服务开通以 App Key 为准。成功上线后,您可以可以访问和配置生产环境。初次开通 生产环境时,对应的 App Key 的服务开关均为默认状态。因此,您可能需要记录已在开发环境中已开通的服务,并为生产环境的 App Key 开通服务。服务开通、关闭等设置完成,最长 15 分钟后生效。
在开发者后台申请上线
-
登录开发者后台,选择需要申请上线的应用。以下操作方式二选一即可:
-
快速操作:如果应用尚未上线,可从概览选择待上线的应用点击去上线。
-
从应用资料页面操作:直接进入应用资料页面,点击申请上线按钮。
-
-
在弹窗中填写应用描述,并确认已实现在
Connect
方法回调TOKEN_INCORRECT
错误时重新获取Token 的逻辑,如图所示:注:如遇到浏览器勾选框点选不了,或者申请上线按钮不能按下等情况,请先换一种浏览器尝试,如若还不生效或者不起作用,可以提交工单或直接拨打 400 919 9066 业务咨询。
-
申请上线条件都具备,点击申请上线之后会弹出提示,选择 IM 付费套餐或 RTC 付费套餐,请等待审核结果审核完毕。
参考链接:
-
审核通过之后,在开发者后台 AppKey 栏目中,生产环境(线上环境)就被分配了新的 Appkey。
注意:开发环境(测试环境)和生产环境(线上环境)是两套独立的环境,相同环境的 App 端和服务端需要用同一套 Appkey 和 AppSecret,否则会 connect 异常。
注意事项
-
确保您的应用在开发环境都已经测试完成,可以正常使用。确认实现了在
Connect
方法中重新获取 Token 的逻辑。Android 端仅以 IMLib SDK 为例, 其他 SDK 请参见开发者文档:
public connectIM(String token){ boolean isCachedLogin == getLoginStatusFromSP(context); //伪代码,从 sharedpreference 里读取该用户是否为免密登录 int timeLimit = 0; if(! isCachedLogin) { timeLimit = 5; } RongIMClient.connect("用户Token", timeLimit, new RongIMClient.ConnectCallback() { @Override public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) { if(RongIMClient.DatabaseOpenStatus.DATABASE_OPEN_SUCCESS.equals(code)) { //本地数据库打开,跳转到会话列表页面 } else { //数据库打开失败,可以弹出 toast 提示。 } } @Override public void onSuccess(String s) { //连接成功,如果 onDatabaseOpened() 时没有页面跳转,也可在此时进行跳转。 } @Override public void onError(RongIMClient.ConnectionErrorCode errorCode) { if(errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_EXPIRE)) { //从 APP 服务请求新 token,获取到新 token 后重新 connect() } else if (errorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONNECT_TIMEOUT)) { //连接超时,弹出提示,可以引导用户等待网络正常的时候再次点击进行连接 } else { //其它业务错误码,请根据相应的错误码作出对应处理。 } } }) }
iOS 端以 IMLib SDK 为例, 其他 SDK 请参见开发者文档:
[[RCIMClient sharedRCIMClient] connectWithToken:@"开发者的 server 通过请求 server api 获取到的 token 值" timeLimit:5 dbOpened:^(RCDBErrorCode code) { //消息数据库打开,可以进入到主页面 } success:^(NSString *userId) { //连接成功 } error:^(RCConnectErrorCode status) { if (status == RC_CONN_TOKEN_INCORRECT) { //Token 错误,可检查客户端 SDK 初始化与 App 服务端获取 Token 时所使用的 App Key 是否一致 } else if(status == RC_CONNECT_TIMEOUT) { //连接超时,弹出提示,可以引导用户等待网络正常的时候再次点击进行连接 } else { //无法连接 IM 服务器,请根据相应的错误码作出对应处理 } }]
-
在开发者后台申请上线成功后,获取生产环境的 App Key 和 App Secret。生产环境的 Token 有效期默认为永久。
-
将您在客户端和服务端用到的融云 App Key 和 App Secret,替换为生产环境的。
确认以上问题后,您的应用可以在生产环境正常运行了。
更多支持
如有疑问,欢迎提交工单。