protocol = "https"; $config->regionId = "central"; return new Dingtalk($config); } // 获取应用身份相关访问凭证 /** * 获取企业内部应用的accessToken **/ public static function accessToken() { $redis = new Redis(config('redis.')); $key = 'dingtalk_accessToken'; $access_token_data = $redis->get($key); if ($access_token_data) { return json_decode($access_token_data, true); } $client = self::createClient(); $getAccessTokenRequest = new GetAccessTokenRequest([ "appKey" => "dingilnkljzq3a4chjrw", "appSecret" => "Dt-nHAw4G-dniS7P9VmbnQRIKHQfGIQNIVHVNVHOZMtLPcsIv4KJYk_AjBCRsaH4" ]); try { $res = $client->getAccessToken($getAccessTokenRequest); } catch (Exception $err) { if (!($err instanceof TeaError)) { $err = new TeaError([], $err->getMessage(), $err->getCode(), $err); } if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 } p($err->getMessage(), $err->getCode());exit; } // {"accessToken" : "fw8ef8we8f76e6f7s8dxxxx","expireIn" : 7200} $data = [ 'accessToken' => $res->body->accessToken, 'expireIn' => $res->body->expireIn, ]; $redis->set($key, json_encode($data), 7100); return $data; } /** * 获取jsapiTicket **/ public static function jsapiTickets(){ $redis = new Redis(config('redis.')); $key = 'dingtalk_jsapiTicket'; $access_token_data = $redis->get($key); if ($access_token_data) { return json_decode($access_token_data, true); } $accessToken = self::accessToken()['accessToken']; $client = self::createClient(); $createJsapiTicketHeaders = new CreateJsapiTicketHeaders([]); $createJsapiTicketHeaders->xAcsDingtalkAccessToken = $accessToken; try { $res = $client->createJsapiTicketWithOptions($createJsapiTicketHeaders, new RuntimeOptions([])); } catch (Exception $err) { if (!($err instanceof TeaError)) { $err = new TeaError([], $err->getMessage(), $err->getCode(), $err); } if (!Utils::empty_($err->code) && !Utils::empty_($err->message)) { // err 中含有 code 和 message 属性,可帮助开发定位问题 } p($err->getMessage(), $err->getCode());exit; } // {"jsapiTicket" : "fw8ef8we8f76e6f7s8dxxxx","expireIn" : 7200} $data = [ 'jsapiTicket' => $res->body->jsapiTicket, 'expireIn' => $res->body->expireIn, ]; $redis->set($key, json_encode($data), 7100); return $data; } }