之前有QQ机器人实现网站推送评论,需要搭建机器人(虽然比较简单),但也提高了门槛(可能需要服务器)。喜欢折腾可以去试试。
今天给搭建分享使用企业微信推送WordPress网站评论,理论上只需要能运行php即可。与此功能相似的Server酱大可不用(后期在割韭菜,付费才无限使用)
配置步骤
1、注册企业微信,个人也可以注册
2、注册后,登陆企业微信,完善基本信息
3、点击应用管理->自建->创建应用
4、创建成功后,简单修改下自己的资料
5、获取企业ID和应用的AgentId和Secret
6、添加核心文件
服务器(或虚拟主机等)新建一个目录,创建文件access_token.php和index.php
进入index.php,添加以下内容
<?php
$url = $_POST['url'];
$title = $_POST['title'];
$description = $_POST['description'];
// 声明页面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' => '应用的AgentId',
'textcard' => array(
'title' => $title,
'description' => $description,
'url' => $url,
'btntxt' => '阅读全文',
),
'enable_id_trans' => 0,
'enable_duplicate_check' => 0,
'duplicate_check_interval' => 1800
);
// 调用发送函数
echo send(json_encode($postdata));
?>
7、编辑WordPress功能函数
WordPress的主题functions.php添加以下内容
//微信推送消息
function push_weixin($comment_id)
{
// 通过 comment_id 获取 comment 全部信息
$comment = get_comment($comment_id);
$siteurl = get_bloginfo('url');
// 根据自己需求,产生相关描述,可以包括文章内容、评论人、IP、评论内容等
$title = '文章 《' . get_the_title($comment->comment_post_ID) . '》 有新评论啦!';
$desp = "作者: $comment->comment_author \n邮箱: $comment->comment_author_email \n评论: $comment->comment_content";
$url = "$siteurl/?p=$comment->comment_post_ID#comments";
// 封装一个 Object 对象,其 msg 字段是我们需要推送到 QQ 的消息内容
$postdata = http_build_query(
array(
'title' => $title,
'description' => $desp,
'url' => $url
)
);
// 一个 POST 请求
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
// 将自己的接口地址填在这里
return $result = file_get_contents('你创建的接口地址/index.php', false, $context);
}
// 挂载 WordPress 评论提交的接口
add_action('comment_post', 'push_weixin', 19, 2);
网站留言测试成功
参考资料
一个php文件实现企业微信推送通知,企业微信实现发送应用消息,推送通知到微信
Invitation
QQ Group
1095632335
created:04/01/2020
Welcome to the Group
Use this card to join us and participate in a pleasant discussion together .
Welcome to JISHUSONGSHU Group,wish you a nice day .