
# 场景3： App ID方式登录
#### 描述
在使用云会议服务之前，如果申请了App ID，可使用App ID的方式进行登录，不需要账号和密码
![](https://support.huaweicloud.com/sdkreference-meeting/public_sys-resources/note_3.0-zh-cn.png)
在未登录状态下，只能加入已经创建的会议。
#### 业务流程
1. **接口调用**
   
   1. 创建登录参数AppIdAuthParam。
      1. 设置第三方账号的唯一标识。
      
      2. 设置随机字符串。
      
      3. 设置签名信息。
      
      4. 设置该用户所在的企业ID,仅[SP模式](https://support.huaweicloud.com/sdkreference-meeting/toctopics/zh-cn_topic_0000001158831580.html)下需要填写
      
      5. 设置签名过期时间。
      
      6. 设置登录账号的昵称。
      
      7. 设置登录账号的邮箱。
      
      8. 设置登录账号的手机号码。
       
   
   2. 调用loginByAppid接口进行登录，第1步中的数据作为参数。
   
   
   
   
2. **处理回调**
   
   处理回调中的结果。
   
   
 
#### 示例代码
```
//构建登录对象
AppIdAuthParam appIdAuthParam = new AppIdAuthParam();
//设置签名过期时间，单位为秒的Unix时间戳，为0则不会过期
appIdAuthParam.setExpireTime(1599618620);
//设置随机字符串，长度为32-64位
appIdAuthParam.setNonce(getNonce());
//设置该用户所在的企业ID,仅SP登录场景下需要
appIdAuthParam.setCorpId(getCorpId());
//设置第三方账号的id，长度为1到64位
appIdAuthParam.setUserId(getUserId());
//设置签名信息
appIdAuthParam.setSignature(getSignature());
//设置用户昵称
appIdAuthParam.setUserName(getUserName());
//注意邮箱需要符合邮箱格式要求
appIdAuthParam.setUserEmail(getUserEmail());
//注意手机号码必须符合手机格式，比如(^$|^[+]?[0-9]+$)
appIdAuthParam.setUserPhone(getUserPhone());
//开始登录
HWMSdk.getOpenApi(getActivity().getApplication()).loginByAppId(appIdAuthParam, new HwmCallback<LoginResult>() {
            @Override
            public void onSuccess(LoginResult loginResult) {
                dismissLoading();
                dismiss();
                if (loginResult != null) {
                    DemoUtil.showToast("登录成功" + loginResult.getUserUuid());
                }else{
                    DemoUtil.showToast("已登录");
                }
            }
            @Override
            public void onFailed(int retCode, String desc) {
                HwmContext.getInstance().runOnMainThread(() ->{
                    dismissLoading();
                    Error error = HWMBizSdk.getLoginApi().convertErrorCodeToUI(retCode);
                    DemoUtil.showToast("登录错误：" + getLoginErrTips(error));
                    dismiss();
                });
            }
        });
```
#### 注意事项
必须在HWMSdk.init调用成功后才可以调用该方法登录。
