setDeptId($dept_id); $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/department/listsub"); if($resp->errcode == 0 && $resp->errmsg == 'ok'){ $result = $resp->result; return $result; } except($resp->errcode.' '.$resp->errmsg); } /** * 获取部门详情 * * @param string $dept_id 部门ID * @return mixed */ public static function department_get($dept_id) { $accessToken = Sample::accessToken()['accessToken']; $c = self::get_obj(); $req = new \OapiV2DepartmentListsubRequest; $req->setDeptId($dept_id); $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/department/get"); if($resp->errcode == 0 && $resp->errmsg == 'ok'){ $result = $resp->result; return $result; } except($resp->errcode.' '.$resp->errmsg); } /** * 获取部门用户详情 * * @param string $dept_id 部门ID * @return mixed */ public static function user_list($dept_id) { $accessToken = Sample::accessToken()['accessToken']; $c = self::get_obj(); $req = new \OapiV2UserListRequest; $req->setDeptId($dept_id); $req->setCursor("0"); $req->setSize("100"); $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/user/list"); if($resp->errcode == 0 && $resp->errmsg == 'ok'){ $result = $resp->result; return $result; } except($resp->errcode.' '.$resp->errmsg); } /** * 查询用户详情 * * @param string $userid 用户的userId * @return mixed */ public static function user_get($userid) { $accessToken = Sample::accessToken()['accessToken']; $c = self::get_obj(); $req = new \OapiV2UserGetRequest; $req->setUserid($userid); $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/user/get"); if($resp->errcode == 0 && $resp->errmsg == 'ok'){ $result = $resp->result; return $result; } except($resp->errcode.' '.$resp->errmsg); } /** * 通过免登码获取用户信息 * * @param string $code 免登授权码 * @return mixed */ public static function get_user_info($code) { $accessToken = Sample::accessToken()['accessToken']; $c = self::get_obj(); $req = new \OapiV2UserGetuserinfoRequest; $req->setCode($code); $resp = $c->execute($req, $accessToken, "https://oapi.dingtalk.com/topapi/v2/user/getuserinfo"); if($resp->errcode == 0 && $resp->errmsg == 'ok'){ $result = $resp->result; return $result; } except($resp->errcode.' '.$resp->errmsg); } /** * 设置企业内部应用H5微应用鉴权 * @param string $url 应用URL,例如:https://your-domain.com/path/to/your/app.html * @return mixed **/ public static function generateAuthSignature($url) { // 获取jsapiTicket $jsapiTicket = Sample::jsapiTickets()['jsapiTicket']; // 生成鉴权签名 $nonceStr = randCode(16); // 随机字符串,用于保证签名不可预测性,长度为16个字符的随机字符串 $timeStamp = time(); // 时间戳,格式为13位数字,如:1602756290 $stringA = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr×tamp=$timeStamp&url=$url"; $signature = sha1($stringA); // 签名值 // agentId值 // corpId值 $config = config('app.dingtalk'); $agentId = $config['agentId']; $corpId = $config['corpId']; return compact("agentId","corpId","nonceStr","timeStamp","signature","url"); } /** * 更新员工和部门 **/ public static function renew(){ $department_list = UserService::get_department_column(); } }