1.普通用户 和 专属帐号员工的区别。
普通用户:通过钉钉提供的官方接口就可以实现
public static List<String> getUserId (String url, String mobile, String token, List<String> errors) {
//获取用户urid
DingTalkClient getUridClient = new DefaultDingTalkClient(url + "/topapi/v2/user/getbymobile");
OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
req.setMobile(mobile);
req.setHttpMethod("POST");
OapiV2UserGetbymobileResponse rsp = null;
try {
rsp = getUridClient.execute(req, token);
} catch (Exception e) {
}
return rsp.getResult().getExclusiveAccountUseridList();
}
专属帐号员工:需要注意
首先专属账号需要通过:req.setSupportExclusiveAccountSearch(true);
设置:support_exclusive_account_search参数
并且最后获取用户ID的方式也不一样
public static List<String> getUserId (String url, String mobile, String token, List<String> errors) {
//获取用户urid
DingTalkClient getUridClient = new DefaultDingTalkClient(url + "/topapi/v2/user/getbymobile");
OapiV2UserGetbymobileRequest req = new OapiV2UserGetbymobileRequest();
req.setMobile(mobile);
req.setHttpMethod("POST");
//【-----这里注意------】
req.setSupportExclusiveAccountSearch(true);
OapiV2UserGetbymobileResponse rsp = null;
try {
rsp = getUridClient.execute(req, token);
} catch (Exception e) {
}
//【-----这里注意------】
return rsp.getResult().getExclusiveAccountUseridList();
}
还有一点:也是开发过程遇到的坑:
拼URL的时候:拼成了"/topapi/v2/user/getbymobile/"
造成了 最后:[submsg=不合法ApiName,ApiName = dingtalk.oapi.v2.user.getbymobile.]
**注意:**正确的URL最后没有/
—>【/topapi/v2/user/getbymobile】