发送普通消息是指员工个人在使用应用时,可以通过界面操作的方式往群或其他人的会话里推送消息,例如发送日志的场景。发送普通消息,然后再调用服务端接口向会话里发送一条消息。举例如下:
准备工作
登入 钉钉管理后台: 点击进入,点击“应用开发”自建应用后获取。
获取下文代码中所需参数:
$corpid 参数等于图中的 AppKey
$corpsecret 参数等于图中的 AppSecret
发送消息时候的 agentid参数等于图中的 AgentId
以下代码:
$userlist = array();
$corpid = "***********";//AppKey
$corpsecret = "******************";//AppSecret
$url="https://oapi.dingtalk.com/gettoken?corpid=".$corpid."&corpsecret=".$corpsecret;//获取access_token的方法
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output=curl_exec($ch);
curl_close($ch);
//var_dump($output);die;//打印测试获取到的access_token
$out_array = json_decode($output,true);
$access_token = $out_array["access_token"];
$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);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output=curl_exec($ch);
$out_array = json_decode($output,true);
foreach ($out_array["department"] as $DPID){
$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);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$output=curl_exec($ch);
$out_array = json_decode($output,true);
foreach ($out_array["userlist"] as $USR){
$userlist[$USR["mobile"]]=$USR["userid"];
}
}
// echo json_encode($userlist);die;//读取该公司的员工的电话和userid,发送短信要用到userid来指定发送对象
//发送消息
$url="https://oapi.dingtalk.com/message/send?access_token=".$access_token;
$post_array = [
"touser" => $userlist['189******20'],//userid指定发送对象
"agentid" => '*******', //AgentId
"msgtype" => "text",
"text" => ["content" => "审核完成,请登录中心后台审核 !". date("Y-m-d H:i:s",time())]
];
//如果要给几个人一起发送消息 "touser" => "189******20 | 189******21 ",中间加一个竖线就好了
//touser是员工的userid,agentid是微应用的AgentId,这个id在工作台随便点一个应用的设置,就可以看到,最好看公告的id,毕竟是发消息嘛,texe里面的就是发送的内容了
$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_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($post_string))
);
$output = curl_exec($ch);
curl_close($ch);
$ret = json_decode($output,true);
//echo json_encode($ret);die;//返回的结果状态码
小结
在调用第三方接口的时候一定要先阅读开发须知,真的很帮助我们的开发哦.
感谢您的阅读~~