我是分了几个层 , 所以代码需要你们自己整理下
获取access token
//获取钉钉的accessToken //$accessTokenUrl='https://oapi.dingtalk.com/gettoken'; //$AppKey$AppSecret这两个不多介绍,钉钉上面有 publicstaticfunctiongetAccessTokenApi() { returnCurl::get(DingTalk::$accessTokenUrl."?appkey=".DingTalk::$AppKey."&appsecret=".DingTalk::$AppSecret); }
这里调用的是上面那个获取钉钉access token的方法 存一下redis 存redis的方法就自己写一下
privatefunctiongetAccessToken() { $dingTalkCache=newDingTalkCache(); //获取缓存的accessToken,没有的话重新请求 if(!$accessToken=$dingTalkCache->getAccessToken()){ $accessTokenApiResult=DingTalkLogic::getAccessTokenApi(); if($accessTokenApiResult->errcode){ \App\Utils\Logger::error("钉钉获取AccessToken失败。错误码:{$accessTokenApiResult->errcode}。错误信息:{$accessTokenApiResult->errmsg}"); returnfalse; } if(!isset($accessTokenApiResult->access_token)){ \App\Utils\Logger::error("钉钉接口请求参数中没有access_token"); returnfalse; } if(!$dingTalkCache->setAccessToken($accessTokenApiResult->access_token)){ \App\Utils\Logger::error("钉钉redis保存access_token缓存失败"); returnfalse; } return$accessTokenApiResult->access_token; } return$accessToken; }
/** *发送消息到群组 *@paramstring$level消息等级 *@paramstring$class当前位置一般__CLASS__来定位 *@paramstring$message错误消息 *@paramstring$data数据 *@returnbool *@throws\JsonException */ publicfunctionsendMessageToGroup(string$level,string$class,string$message,string$data=""):bool { //获取sccesstoken $accessToken=$this->getAccessToken(); if(!$accessToken){ Logger::error("钉钉accessToken获取失败"); returnfalse; } $url=\App\Define\DingTalk::$sendMessageToGroup."?access_token=".$accessToken; //这个是自己定义的一个根据错误等级显示不用字体颜色而已,不要也没事 $color=$this->getLevelColor($level); $result=Curl::post($url,json_encode([ /** *消息群ID,也就是发送到哪个群的ID *https://wsdebug.dingtalk.com/ *通过这个链接进行扫码查看chatId值 */ 'chatid'=>\App\Define\DingTalk::$chatId, 'msg'=>[ 'msgtype'=>'markdown', 'markdown'=>[ 'title'=>"{$level}消息", 'text'=>"#####<fontcolor=#".$color.">等级:".$level."</font> \n######时间:".date("Y-m-dH:i:s")." \n######位置:".$class." \n######消息:**".$message."** \n######数据:".$data ] ] ],JSON_THROW_ON_ERROR)); if($result->errcode){ Logger::error($result->errmsg); returnfalse; } returntrue; }
相关推荐
© 2020 asciim码
人生就是一场修行