我是分了几个层 , 所以代码需要你们自己整理下

获取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;}



更多相关文章

  1. android沉浸式状态栏的实现
  2. Android基于XMPP Smack Openfire开发IM【三】客户端接收服务器发
  3. Android(安卓)屏幕截图
  4. android之从Bmob获取数据显示在ListView中
  5. Android(安卓)利用url获取Bitmap图片
  6. FAQ00366]如何使Android应用程序获取系统权限
  7. Android开发面试经——4.常见Android进阶笔试题(更新中...)
  8. Android中获取网页表单中的数据实现思路及代码
  9. Bluetooth in Android(安卓)4.2 and 4.3(三):Enable Bluetooth

随机推荐

  1. 什么是 Java 内存模型?
  2. FastAPI基础之Http状态码备忘
  3. 什么是 happens-before 原则?
  4. BigDecima类型数据的处理--Non-terminati
  5. Java自学指南一、找一个开始并能坚持下去
  6. 网络变更服务器不断网方案测试
  7. 看到蛋糕,才发现自己已到而立之年
  8. VMware workstation 技巧总结(持续更新)
  9. Java自学指南二、后端开发全景图与快速入
  10. 执行pod install 报错