钉钉发送信息脚本

每次运行都实时查询,中间数据可以放在数据库或文本中提高信息发送速度

php dingtalk.php 电话号码  “信息内容”

<?php

//获取token
$corpid="xxxxxxx";
$corpsecret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$userlist=array();

$url="https://oapi.dingtalk.com/gettoken?corpid=".$corpid."&corpsecret=".$corpsecret;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output=curl_exec($ch);
curl_close($ch);
$out_array = json_decode($output,true);
$access_token = $out_array["access_token"];

//获取电话与userid对应关系
$url="https://oapi.dingtalk.com/department/list?access_token=".$access_token;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$output=curl_exec($ch);
$out_array = json_decode($output,true);
//var_dump($out_array);
foreach ($out_array["department"] as $DPID){
        //echo $DPID["id"];
        //echo "\n";
        $url="https://oapi.dingtalk.com/user/list?access_token=".$access_token."&department_id=".$DPID["id"];
        $ch = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_HEADER, 0);
        $output=curl_exec($ch);
        $out_array = json_decode($output,true);
        //var_dump($out_array);
        foreach ($out_array["userlist"] as $USR){
                $userlist[$USR["mobile"]]=$USR["userid"];
                //$tem_array('$USR["mobile"]'=>'$USR["userid"]');
                //array_merge($userlist,$tmp_array]);
        }
}

var_dump($userlist);
//发送消息
$url="https://oapi.dingtalk.com/message/send?access_token=".$access_token;
$post_array=array("touser" => $userlist[$argv[1]],"agentid" => "xxxxx", "msgtype" => "text", "text" => array("content" => $argv[2]));
$post_string=json_encode($post_array);

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
      'Content-Type: application/json',                                                                                
      'Content-Length: ' . strlen($post_string))                                                                       
);
$output = curl_exec($ch);
curl_close($ch);
print_r($output);
?>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Zabbix 是一款开源的企业级监控软件。在 Zabbix 中,可以设置各种告警方式,其中包括钉钉告警。本文将介绍如何编写钉钉的 Shell 告警脚本。 首先,我们需要在钉钉中创建一个机器人。在钉钉群中,点击右上角的设置按钮,选择机器人管理,然后点击创建机器人。选择自定义机器人,设置机器人名称和头像,然后复制 Webhook 地址。 接下来,我们需要编写 Shell 脚本。可以使用任何编辑器,比如 vim,nano 或者 gedit。以下是一个简单的 Shell 脚本示例: ```bash #!/bin/bash # 钉钉机器人 webhook 地址 url="https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX" # 消息内容 message="$1" # 发送 POST 请求 curl -H "Content-Type: application/json" -X POST -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"$message\"}}" $url ``` 在脚本中,首先设置了钉钉机器人的 Webhook 地址。然后获取了消息内容,该内容作为脚本的第一个参数传入。最后,使用 curl 命令发送 POST 请求,将消息内容作为 JSON 格式发送给钉钉机器人。 现在,将脚本保存为 dingding.sh,并将其放置在 Zabbix 的 alertscripts 目录中。该目录通常位于 /usr/lib/zabbix/alertscripts。然后,将脚本的权限设置为可执行: ```bash chmod +x /usr/lib/zabbix/alertscripts/dingding.sh ``` 接下来,在 Zabbix 中创建一个新的媒介类型。在 Zabbix 管理界面中,选择 Administration -> Media types。然后点击 Create media type 按钮。 在弹出窗口中,输入以下信息: - Name: 钉钉告警 - Type: Script - Script name: dingding.sh - Script parameters: {ALERT.MESSAGE} 然后点击 Add 按钮进行保存。 最后,在 Zabbix 的告警动作中,选择钉钉告警媒介类型,并将钉钉机器人 Webhook 地址作为参数传入。现在,当 Zabbix 监控出现问题时,将会通过钉钉机器人发送告警消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值