YII 钉钉接口 实时 报告

实现需求之前:先准备好钉钉软件  --->  在钉钉里面创建技术群  --> 设置里面有个 机器人什么的, 把它打开。 然后按照流程配置,这个可以百度,完事了,会有个链接, 算是一个接口吧。这个链接是独一无二的。

https://oapi.dingtalk.com/robot/send?access_token=**********************************


项目中找到 钉钉 的类 我的是在 commen\tools\DingNotify

然后 写方法,目的在于这个方法,放在某个功能下面,如果程序跑到该功能的部分了,就会触发钉钉报告,机器人会根据数据,自动在群里发信息,说发生了什么事。

我这里写的是用户举报的提醒。 如果用户举报了什么东西,钉钉群里就会自动通知。

public static function Report($title,$text)
{

//$_SERVER['HTTP_HOST'] 当前请求的 Host: 头部的内容 。
// 这里只有用户在
http://v2.admin.haiwaiuni.com 举报时才提醒
  if($_SERVER['HTTP_HOST'] ==  'http://v2.admin.haiwaiuni.com')  {  
try {

$webHook = \Yii::$app->params['ding-notify-url']['Report'];

$client = new Client();i

//下面有颜色的这个格式是钉钉手册里面的。直接看手册,需要什么数据,拿来改巴改巴就行
$response = $client->request("POST", $webHook, [
'json' => [
"actionCard" => [
"title" => $title,
"text" => $text,
"hideAvatar" => "0",
"btnOrientation" => 0,
"singleTitle" => "请点击打开举报页面,查看详情",
"singleURL" => "http://v2.admin.test1.ukwelife.com" // 该网址就是钉钉报的信息,你点击它就会进到相应页面
],
"msgtype" => "actionCard"
]
]);
return true;
} catch (\Exception $e) {
\Yii::error($e); // 出错的话,可以在这里var_dump($e->getMessage) 查看错误是因为什么产生的
return false;
}
}
}



因为用户举报需要点击举报按钮吧? 然后找到该按钮的接口, 把该方法写在接口方法里去调用。
这个函数就是举报接口下面的,那么在该方法下面调用钉钉提醒
public function actionReportCreate() {

...... // 巴拉巴拉连接数据库取了一堆举报的 内容的相关数据
.... //
     DingNotify::Report(
"有用户举报", // 对应上面的 $title
" // 下面的对应上面的$test
举报原因 :$data[reason]
举报说明 :$data[content]
话题文字 :$data[topic]
"
);
}

程序到这里还没完,你运行会报错, 说是方法Report没定义, 为啥会这样 ? 因为你还没配置好呢
 $webHook = \Yii::$app->params['ding-notify-url']['Report'];

没有配置 ding-notify-url 呀,数组不是瞎写的。 应该在 ding-notify-url 下面把Report配置进去

我的配置文件在commen\config\params.php里面。
找到
return[
      'ding-notify-url' => [

// 在这里面加入
     'Report' => 'https://oapi.dingtalk.com/robot/send?access_token=**********************************'  //这个链接 就是文章开头写的
      ],
  ];
  好了,这样只要用户举报, 钉钉就可以自动在群里提醒了,





posted on 2018-09-14 22:46  刷哥  阅读(606)  评论(0编辑  收藏  举报

导航