×

php钉钉发送消息上传附件

chen chen 发表于2021-07-27 22:37:24 浏览527 评论0

抢沙发发表评论

<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');

function get_access_token(){
$Cache_FileName="access_token";
if (file_exists($Cache_FileName) && (time()-@filemtime($Cache_FileName))<7200  ){
return read_file($Cache_FileName);
}else{
$DD_Accesstoken =  file_get_contents("https://oapi.dingtalk.com/gettoken?corpid=1111&corpsecret=12121212");
$jsondecode = json_decode($DD_Accesstoken);
$array = get_object_vars($jsondecode);
$Accesstoken=$array['access_token'];
write_file($Cache_FileName,$Accesstoken);
//sleep(2);
return  $access_token;
}
}
$access_token=get_access_token();
$url="https://oapi.dingtalk.com/message/send?access_token=".$access_token;
//$post_array=array("touser" =>'11111',"agentid" => "11111", "msgtype" => "text", "text" => array("content" => "你的订单已经发货点此查看dingtalk://dingtalkclient/page/link?url=".urlencode("http://www.baidu.com")."&pc_slide=true"));
$post_array=array("touser" =>'1111|22222',"agentid" => "11111", "msgtype" => "link", "link" => array(
"messageUrl" => "dingtalk://dingtalkclient/page/link?url=".urlencode("http://www.baidu.com/?")."&pc_slide=true",
"picUrl" => "@lAD1-Lc5s122cypzKg",
"title" => "你的订单已经发货",
"text" => "订单编号1112223333"));
//@lADO-Lc5scypzKg
$post_string=json_encode($post_array);
print_r($post_string);
function liansuo_post($url,$data){ // 模拟提交数据函数
$curl = curl_init(); // 启动一个CURL会话
curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); // 从证书中检查SSL加密算法是否存在
curl_setopt($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); // 模拟用户使用的浏览器
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转
curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referer
curl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求
curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包
//curl_setopt($curl, CURLOPT_COOKIEFILE, $GLOBALS['cookie_file']); // 读取上面所储存的Cookie信息
curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循环
curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: '.strlen($data))
);
$tmpInfo = curl_exec($curl); // 执行操作
if (curl_errno($curl)) {
echo 'Errno'.curl_error($curl);
}
curl_close($curl); // 关键CURL会话
return $tmpInfo; // 返回数据
}
//发送消息
print_r(liansuo_post($url,$post_string));
//上传附件
function http_post($url,$param){
$oCurl = curl_init();
//下面判断https 和 http;因为钉钉接口是 Https请求
if(stripos($url,"https://")!==FALSE){
curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
}
curl_setopt($oCurl, CURLOPT_URL, $url);
curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($oCurl, CURLOPT_POST,true);
curl_setopt($oCurl, CURLOPT_POSTFIELDS,$param);
$sContent = curl_exec($oCurl);
$aStatus = curl_getinfo($oCurl);
curl_close($oCurl);
if(intval($aStatus["http_code"])==200){
return $sContent;
}else{
return false;
}
}
/*$url = 'https://oapi.dingtalk.com/media/upload?access_token='.$access_token.'&type=image';
$file['media'] = "@D:\wwwroot\1233\logo.jpg";//这里的“/www/test.jpg”文件的绝对路径
$res = http_post($url,$file);
if($res['errcode'] == 0){
print_r($res);
//文件上传成功 $res['media_id'] 就是返回的 素材id
}else{
echo "上传失败";
}*/
?>


群贤毕至

访客