【应用配置】融云应用上线流程与注意事项

融云每个应用提供开发生产两套环境,两个环境之间数据隔离,分别提供不同的 App Key。应用默认仅启用开发环境。如需使用生产环境的 App Key,必须在融云开发者后台申请上线并通过。生产环境的 App Key 可以用于应用正式发布以及上架应用市场。

:tipping_hand_man: 请勿将开发环境的 App Key 用于应用正式发布以及上架应用市场。如果您误将开发环境的 App Key 用于正式发布的应用,请尽快将客户端和服务端替换为生产环境的 App Key(服务端还需替换 App Secrect),并通知已经下载的客户强制升级。更换 App Key 后,所有客户必须重新获取 Token 才能与融云建立连接。

:warning: 服务开通以 App Key 为准。成功上线后,您可以可以访问和配置生产环境。初次开通 生产环境时,对应的 App Key 的服务开关均为默认状态。因此,您可能需要记录已在开发环境中已开通的服务,并为生产环境的 App Key 开通服务。服务开通、关闭等设置完成,最长 15 分钟后生效。

在开发者后台申请上线

  1. 登录开发者后台,选择需要申请上线的应用。以下操作方式二选一即可:

  2. 在弹窗中填写应用描述,并确认已实现在 Connect 方法回调 TOKEN_INCORRECT 错误时重新获取Token 的逻辑,如图所示:

    :如遇到浏览器勾选框点选不了,或者申请上线按钮不能按下等情况,请先换一种浏览器尝试,如若还不生效或者不起作用,可以提交工单或直接拨打 400 919 9066 业务咨询。

  3. 申请上线条件都具备,点击申请上线之后会弹出提示,选择 IM 付费套餐或 RTC 付费套餐,请等待审核结果审核完毕。

    参考链接:

  4. 审核通过之后,在开发者后台 AppKey 栏目中,生产环境(线上环境)就被分配了新的 Appkey。

    注意:开发环境(测试环境)和生产环境(线上环境)是两套独立的环境,相同环境的 App 端和服务端需要用同一套 Appkey 和 AppSecret,否则会 connect 异常。

注意事项

  1. 确保您的应用在开发环境都已经测试完成,可以正常使用。确认实现了在 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 服务器,请根据相应的错误码作出对应处理
            }
        }]
    
  2. 在开发者后台申请上线成功后,获取生产环境的 App Key 和 App Secret。生产环境的 Token 有效期默认为永久。

  3. 将您在客户端和服务端用到的融云 App Key 和 App Secret,替换为生产环境的。

确认以上问题后,您的应用可以在生产环境正常运行了。

更多支持

如有疑问,欢迎提交工单