我是分了几个层 , 所以代码需要你们自己整理下
获取access token
// 获取钉钉的accessToken
//$accessTokenUrl = 'https://oapi.dingtalk.com/gettoken';
//$AppKey $AppSecret 这两个不多介绍,钉钉上面有
public static function getAccessTokenApi()
{
return Curl::get(DingTalk::$accessTokenUrl."?appkey=".DingTalk::$AppKey."&appsecret=".DingTalk::$AppSecret);
}这里调用的是上面那个获取钉钉access token的方法 存一下redis 存redis的方法就自己写一下
private function getAccessToken()
{
$dingTalkCache = new DingTalkCache();
// 获取缓存的accessToken , 没有的话重新请求
if (!$accessToken = $dingTalkCache->getAccessToken()){
$accessTokenApiResult = DingTalkLogic::getAccessTokenApi();
if ($accessTokenApiResult->errcode){
\App\Utils\Logger::error("钉钉获取Access Token 失败。错误码:{$accessTokenApiResult->errcode}。错误信息:{$accessTokenApiResult->errmsg}");
return false;
}
if (!isset($accessTokenApiResult->access_token)){
\App\Utils\Logger::error("钉钉接口请求参数中没有 access_token");
return false;
}
if (!$dingTalkCache->setAccessToken($accessTokenApiResult->access_token)){
\App\Utils\Logger::error("钉钉redis保存access_token缓存失败");
return false;
}
return $accessTokenApiResult->access_token;
}
return $accessToken;
} /**
* 发送消息到群组
* @param string $level 消息等级
* @param string $class 当前位置 一般__CLASS__来定位
* @param string $message 错误消息
* @param string $data 数据
* @return bool
* @throws \JsonException
*/
public function sendMessageToGroup(string $level, string $class, string $message, string $data=""): bool
{
// 获取sccesstoken
$accessToken = $this->getAccessToken();
if (!$accessToken){
Logger::error("钉钉accessToken 获取失败");
return false;
}
$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' => "##### <font color=#".$color.">等级:".$level."</font>
\n ###### 时间:".date("Y-m-d H:i:s")."
\n ###### 位置:". $class ."
\n ###### 消息:**".$message."**
\n ###### 数据:". $data
]
]
], JSON_THROW_ON_ERROR));
if ($result->errcode){
Logger::error($result->errmsg);
return false;
}
return true;
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号