钉钉OR企业微信群机器人API实现WordPress评论消息通知

2,978次阅读
8条评论

该文章最后更新于2024-04-25 10:43,某些内容具有时效性,若有错误或已失效,请谅解!

写了一个简单的插件,还没来得及做界面上的优化,需要的可以先行下载,后续更新将在本文内通知。

插件下载地址:

 文件名称:Ailcc_Notice.zip
 文件大小:12MB
 下载声明:本站部分资源来自于网络收集,若侵犯了你的隐私或版权,请及时联系我们删除有关信息。
下载地址:https://images.ailcc.com/ailcc_file/Ailcc_Notice.zip
 提取码:

功能介绍:

V1.0.0
更新内容:

  • 添加钉钉机器人通知
  • 添加企业微信机器人通知

使用办法

1、进入插件页面,点击安装插件。
2、点击上传插件,找到刚刚下载的插件,选择安装。
3、点击启用,配置机器人所需key保存即可。

更新日志

  1. 2023/03/27 修复企业微信webhook错误问题

以下为初始文章

初始文章:

自从换到WordPress之后,邮件通知一直都是邮件通知,时效上有延迟不说,再加上我本人不爱看邮件,不论是个人邮件还是公司邮件。

思考了许久,还是决定沿用之前用thinkphp时候写的钉钉推送通知。

在收到评论的第一时间,钉钉机器人就能通知有新的评论,提示我需要审批。

通知样式图:
钉钉OR企业微信群机器人API实现WordPress评论消息通知

钉钉创建机器人的步骤就不写了,官方有教程。

钉钉需要注意的地方:

  • Webhook 必须要有
  • 加签秘钥 必须要有
  • 安全关键词 可以不用填,如果填了,那么消息最前面一定要三安全词。

简单写一下代码和怎么接入。

代码:将下面的代码复制到主题目录下的 functions.php 文件的最尾部。

接入:将钉钉机器的 Webhook加签秘钥 复制到对应的地方,代码中用中文标记的位置,粘贴就行,别粘贴错了。

然后,保存就好了。

function dingding_up($comment_id) { 
    $comment = get_comment($comment_id);
    $time    = intval(microtime(true) * 1000);
    $url = 'https://oapi.dingtalk.com/robot/send?access_token=你的webhook';
    $secret = '机器人加签秘钥';
    $sign = hash_hmac('sha256', $time . "\n" . $secret,$secret,true);
    $sign = base64_encode($sign);
    $sign = urlencode($sign);

    $text = '在《'.get_the_title($comment->comment_post_ID).'》中有一条评论等待您的审核!';
    $msg = [
        "msgtype" => "text",
        "text"    => [
            "content" => "$text \n评论者: $comment->comment_author \n邮箱地址: $comment->comment_author_email \nURL:$comment->comment_author_url \n评论: $comment->comment_content \n评论时间:".current_time("mysql", $gmt).""
        ],
    ];
    $url = "{$url}&timestamp={$time}&sign={$sign}";
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($curl, CURLOPT_POST, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($msg));
    curl_setopt($curl, CURLOPT_HEADER, 0);
    curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $res = curl_exec($curl);
    curl_close($curl);
}
add_action('comment_post', 'dingding_up', 19, 2);
沛霖主页 哈哈哈哈

共计64人点赞,其中2人来自小程序

正文完
微信扫码打开小程序体验更多功能
post-qrcode
 64
沛霖主页
版权声明:本站原创文章,由 沛霖主页 2023-03-05发表,共计1896字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(8条评论)
领导,我小江 评论达人 LV.1
2023-03-14 15:43:13 回复

沛霖哥哥好厉害!

 Macintosh  Chrome  中国北京北京市皓宽网络
守得住才叫爱情 评论达人 LV.1
2023-03-07 21:19:10 回复

大佬,插件什么时候能好啊?

 iPhone  Safari  中国安徽省蚌埠市电信
    沛霖主页 博主
    2023-03-07 21:22:39 回复

    @守得住才叫爱情 不要着急,还在整理,目前能正常使用了,我想弄专业一点!不着急

     iPhone  Ailcc MiniProgram  中国上海上海市联通
宅博客 评论达人 LV.1
2023-03-06 10:53:51 回复

:loveyou: :loveyou: :loveyou: :loveyou: 刚需功能!赞,能不能加企业微信和飞书啊

 Windows  Edge  中国江苏省常州市移动
    沛霖主页 博主
    2023-03-06 10:55:02 回复

    @宅博客 :idea: 后面在看看

     Macintosh  Chrome  中国上海上海市电信
      宅博客 评论达人 LV.1
      2023-03-06 19:39:29 回复

      @沛霖主页 有个问题,站长回复评论的时候也会通知,怎么取消掉,只让其他游客或者账户评论回复的时候通知,站长回复评论的时候不通知呢???

       Windows  Edge  中国江苏省常州市移动
        沛霖主页 博主
        2023-03-06 19:42:38 回复

        @宅博客 加个if判断,在$comment = get_comment($comment_id);下面加if($comment->user_id <> '1'){都放这里},然后下面的其他内容都放在{都放这里}里面,就可以了,这样直接不展示站长的任何评论,不论是回复还是评论,因为站长回复本来就是不用审核的,粗暴简单。

         Macintosh  Chrome  中国上海上海市联通