标签搜索

最近很火的微信公众号推送通知php源码 自定义卡片内容 企业微信推送

冷言
2022-08-31 / 32 评论 / - 阅读

1、注册企业微信(https://work.weixin.qq.com/),无需企业资质,个人也可以注册

2、注册后,登陆企业微信,完善基本信息

3、点击应用管理->自建->创建应用

01.jpg

应用名称 介绍这些根据自己 随便写。注意下图中的可见范围,可自定义给谁推送或直接给整个部门推送

02.jpg

4、创建成功后,简单修改下自己的资料

5、获取企业ID和Secret

企业ID在我的企业里此处获取,见下图

03.jpg

应用Secret在你创建好的应用里查看

04.jpg

把获取到的ID和Secret复制粘贴到php代码中

<?php
// 声明页面header
header("Content-type:text/html;charset=utf-8");
// 获取access_token
function getToken(){
    // 定义id和secret
    $corpid='你的企业微信企业ID';
    $corpsecret='你的企业微信secret';
    // 读取access_token
    include './access_token.php';
    // 判断是否过期
    if (time() > $access_token['expires']){
        // 如果已经过期就得重新获取并缓存
        $access_token = array();
        $access_token['access_token'] = getNewToken($corpid,$corpsecret);
        $access_token['expires']=time()+7000;    
        // 将数组写入php文件
        $arr = '<?php'.PHP_EOL.'$access_token = '.var_export($access_token,true).';'.PHP_EOL.'?>';
        $arrfile = fopen("./access_token.php","w");
        fwrite($arrfile,$arr);
        fclose($arrfile);
        // 返回当前的access_token
        return $access_token['access_token'];
    }else{
        // 如果没有过期就直接读取缓存文件
        return $access_token['access_token'];
    }
}
// 获取新的access_token
function getNewToken($corpid,$corpsecret){
    $url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={$corpid}&corpsecret={$corpsecret}";
    $access_token_Arr =  https_request($url);
    return $access_token_Arr['access_token'];
}
// curl请求函数
function https_request ($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    $out = curl_exec($ch);
    curl_close($ch);
    return  json_decode($out,true);
}
// 发送应用消息函数
function send($data){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token='.getToken());
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    return curl_exec($ch);
}
// 文本卡片消息体
$postdata = array(
    'touser' => '@all',
    'msgtype' => 'textcard',
    'agentid' => '1000002',
    'textcard' => array(
        'title' => '测试卡片的标题',
        'description' => '测试卡片的描述',
        'url' => 'http://www.qq.com',
        'btntxt' => '阅读全文',
    ),
    'enable_id_trans' => 0,
    'enable_duplicate_check' => 0,
    'duplicate_check_interval' => 1800
);
// 调用发送函数
echo send(json_encode($postdata));
?>

推送的内容修改:在上面代码底部的 // 文本卡片消息体 里修改。

代码中,[email protected] 就是向所有人推送消息,msgtype就是当前发送的类型,agentid就是当前应用的id,textcard就是一些参数(标题、跳转的链接等)。除了上面的消息类型,还有文本消息、图片消息、语音消息、视频消息、图文卡片消息等,具体可以查看开发文档,配置发送的消息体。具体请参考官方开发文档:https://work.weixin.qq.com/api/doc/90000/90135/90236

特别注意:

需要别人扫码关注了你的企业微信后才可以收到推送,在后台的 我的企业-左侧微信插件-底部有个邀请关注的二维码,把这个二维码发给别人让他关注上。TA关注后,你记得把TA拉到可见范围的分组里,如果你设置的是整个部门可见的话就不用改了。

定时自动推送:

大家可以用宝塔的计划任务-访问URL功能或者其他方法实现定时推送。

配置可信IP:

企业微信的推送需要在后台配置可信IP,不配置就访问不了。在你创建好的应用的底部,有个 企业可信IP ,把服务器的IP地址放上去就行了。

如需获取天气这类的可使用我API站(qqlykm.cn)的天气API和其他的一些接口,免费的。

推送成功的截图:

1661940753648691.jpg

蓝奏云网盘下载

0

评论

博主关闭了本网站的评论