public async Task <string> GetAccessTokenByAppAsync(DingDingAppEnum app) { var config = await GetDingDingConfigByAppAsync(app); DingAccessToken accessToken = Get.GetJson <DingAccessToken>(string.Format("https://oapi.dingtalk.com/gettoken?appkey={0}&appsecret={1}", config.Appkey, config.Appsecret)); Logger.InfoFormat("AccessToken response errmsg:{0} body:{1}", accessToken.errmsg, accessToken.access_token); return(accessToken.access_token); }
public async Task <DingDingUserDto> GetDingDingUserByCodeAsync(string code, DingDingAppEnum appId) { ddConfig = _dingDingAppService.GetDingDingConfigByApp(appId); //测试环境注释 var assessToken = _dingDingAppService.GetAccessToken(ddConfig.Appkey, ddConfig.Appsecret); var userId = _dingDingAppService.GetUserId(assessToken, code); //var userId = "16550049332052666774"; // var userId = "1926112826844702"; var query = await _employeeRepository.GetAsync(userId); var dduser = query.MapTo <DingDingUserDto>(); var area = await _employeeManager.GetAreaCodeByUserIdAsync(dduser.Id);//钉钉用户区县权限 dduser.Area = area.ToString(); dduser.AreaCode = area; return(dduser); }
public async Task <DingDingAppConfig> GetDingDingConfigByAppAsync(DingDingAppEnum app) { DingDingAppConfig config = new DingDingAppConfig(); var configList = new List <DingTalkConfig>(); switch (app) { case DingDingAppEnum.智能办公: { configList = await _dingTalkConfigRepository.GetAll() .Where(d => d.Type == DingDingTypeEnum.公共配置 || d.Type == DingDingTypeEnum.智能办公) .AsNoTracking() .ToListAsync(); } break; default: break; } foreach (var item in configList) { if (item.Code.ToLower() == DingDingConfigCode.CorpId.ToLower()) { config.CorpId = item.Value; } else if (item.Code.ToLower() == DingDingConfigCode.Appkey.ToLower()) { config.Appkey = item.Value; } else if (item.Code.ToLower() == DingDingConfigCode.Appsecret.ToLower()) { config.Appsecret = item.Value; } else if (item.Code.ToLower() == DingDingConfigCode.AgentID.ToLower()) { int outAgenId = 0; if (int.TryParse(item.Value, out outAgenId)) { config.AgentID = outAgenId; } } } return(config); }
/// <summary> /// 获取钉钉配置根据 应用App /// </summary> public DingDingAppConfig GetDingDingConfigByApp(DingDingAppEnum app) { DingDingAppConfig config = new DingDingAppConfig(); var configList = new List <SystemData>(); switch (app) { case DingDingAppEnum.任务拜访: { configList = _systemDataRepository.GetAll() .Where(s => s.ModelId == ConfigModel.钉钉配置) .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.任务拜访) .ToList(); } break; case DingDingAppEnum.智能报表: { configList = _systemDataRepository.GetAll() .Where(s => s.ModelId == ConfigModel.钉钉配置) .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.智能报表) .ToList(); } break; case DingDingAppEnum.会议申请: { configList = _systemDataRepository.GetAll() .Where(s => s.ModelId == ConfigModel.钉钉配置) .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.会议申请) .ToList(); } break; case DingDingAppEnum.资料标准库: { configList = _systemDataRepository.GetAll() .Where(s => s.ModelId == ConfigModel.钉钉配置) .Where(s => s.Type == ConfigType.钉钉配置 || s.Type == ConfigType.企业标准库) .ToList(); } break; } foreach (var item in configList) { if (item.Code == DingDingConfigCode.CorpId) { config.CorpId = item.Desc; } else if (item.Code == DingDingConfigCode.Appkey) { config.Appkey = item.Desc; } else if (item.Code == DingDingConfigCode.Appsecret) { config.Appsecret = item.Desc; } else if (item.Code == DingDingConfigCode.AgentID) { int outAgenId = 0; if (int.TryParse(item.Desc, out outAgenId)) { config.AgentID = outAgenId; } } } return(config); }
/// <summary> /// 获取钉钉AccessToken 根据App /// </summary> public string GetAccessTokenByApp(DingDingAppEnum app) { var config = GetDingDingConfigByApp(app); return(GetAccessToken(config.Appkey, config.Appsecret)); }