每次运行都实时查询,中间数据可以放在数据库或文本中提高信息发送速度
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);
?>