
# App ID方式登录
```
HWMSdk.getOpenApi.loginByAppId(AppIdAuthParam,HwmCallback）
```
**接口描述**
该接口用于通过App ID的方式登录和鉴权。
**注意事项**
除匿名入会外，在使用其他业务之前必须进行成功登录。
![](https://support.huaweicloud.com/sdkreference-meeting/public_sys-resources/note_3.0-zh-cn.png)
登录成功以后会发送登录成功事件onSuccess回调。
**方法定义**
```
/**
     * 登录接口
     * @param appIdAuthParam 登录配置对象
     * @param hwmCallback 登录结果回调
     */
void loginByAppId(AppIdAuthParam appIdAuthParam, HwmCallback<LoginResult> hwmCallback)
```
**参数描述**
表1参数说明 
| 参数             | 是否必须 | 类型                                                                                                                                               | 描述     |
|:---|:---|:---|:---|
| appIdAuthParam | 是    | AppIdAuthParam                                                                                                                                   | 登录配置对象 |
| hwmCallback    | 是    | [HwmCallback\<LoginResult\>](https://support.huaweicloud.com/sdkreference-meeting/meeting_22_0130.html#ZH-CN_TOPIC_0269368401__table19421529547) | 回调处理对象 |
   
**返回值**
无。
**参数拓展**
表2AppIdAuthParam参数说明 
| 参数          | 是否必须 | 类型     | 描述                                                                                                                                                                  |
|:---|:---|:---|:---|
| thirdUserId | 是    | String | 第三方账号的唯一标识，1到64位 说明：App ID的方式鉴权，需要保证App ID的是在会议服务器上申请的，App ID通过HWMSdk.init时，传入OpenSdkConfig，通过OpenSdkCOnfig.setAppId(appid)传入 |
| nonce       | 是    | String | 随机字符串，32到64位                                                                                                                                                        |
| corpId      | 否    | String | 设置该用户所在的企业ID。仅在SP模式下需要填写，单企业模式不要填写，否则会鉴权失败。                                                                                                                         |
| signature   | 是    | String | 签名信息                                                                                                                                                                |
| expireTime  | 是    | long   | 签名过期时间，单位为秒的Unix时间戳，为0则不会过期                                                                                                                                         |
| userName    | 否    | String | 用户名称(如不填，默认与thirdUserId一致)。                                                                                                                                         |
| userEmail   | 否    | String | 用户邮箱                                                                                                                                                                |
| userPhone   | 否    | String | 用户手机号码                                                                                                                                                              |
| deptCode    | 否    | String | 部门编码                                                                                                                                                                |
   
**示例代码**
```
//构建登录对象
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();
                });
            }
        });
```
