专栏首页梦魇小栈博客评论网易云跟帖评论提醒功能

博客评论网易云跟帖评论提醒功能

多说官方宣布 17 年 6 月 1 号停止维护,一个优秀的评论系统从此倒下了,令人唏嘘不已,还是要感谢多说团队多年的付出。眼下留给博主们的选择也就畅言和网易云跟帖了。经过综合考虑选择了网易跟帖,由于网易云跟帖没有提醒功能,所以今天就做了一个邮件提醒的功能。

  • 网易云跟帖的安装这里就不多说了,照着网上的教程走一遍或者按官方的文档基本上就可以了,不过提醒一下,网易云跟帖不能在本地测试,必须部署完成才会显示!
  • 接下来才是本篇文章的重点。也是云跟帖不足的一个地方。之前多说收到评论会在博客的右上角提示,云跟帖就没有这个功能,而且也不会收到邮件,这样就不能即时的处理评论。好在提供了收到评论的回调功能,所以我们自己来实现发送邮件的功能。

数据回推

在获取代码里面有个优化设置功能,需要我们自己设置接口来接受评论推送。以下邮件评论提示由 php 来实现。php 模拟邮箱登录发送邮件采用如下库:http://download.csdn.net/download/zhong960725/9755214 ,亲测能正常使用,需要配置 smtp 服务区,端口,帐号和密码等。 网易通过结果返回的数据如下:

[
  {
    "title": "xxx", //文章标题
    "url": "http://localhost/1.htm", //文章url
    "sourceId": "xxx", //文章唯一id
    "ctime": 11111, //文章创建时间
    "comments": [
      {
        "cid": "xxx", //跟贴id
        "content": "xxxx", //内容
        "ctime": 11111, //创建时间
        "pid": "xxxx", //父贴id
        "ip": "127.0.0.1", //发贴ip
        "source": "web", //来源 app,web,wap
        "anonymous": false, //是否匿名跟贴 false:非匿名 true:匿名
        "attachment": {
          "type": 0, //0没有附件 1为图片 2为语音 3为视频
          "desc": "xxx", //描述
          "info": "http://localhost/1.jpg" //附件地址
        },
        "user": {
          "userId": "xxx", //第三方用户id
          "nickname": "xxx", //昵称
          "avatar": "http://localhost/2.png" //头像地址
        }
      }
    ]
  }
]

服务器配置

  • 搭建web服务器,博客前面有提到,可以Linux 常用命令笔记
  • 搭建PHP环境,由于我的服务器是Ubuntu 16.04的,所以貌似不能安装php5了,所以这里是php7
    • 安装PHP : sudo apt-get install -y php7.0 php7.0-fpm php7.0-cli php7.0-common php7.0-mbstring php7.0-gd php7.0-intl php7.0-xml php7.0-mysql php7.0-mcrypt php7.0-zip.
  • 配置nginx,
server {
        listen 80;
        server_name xxxx.xxx.xxx;

        root   /var/www/comment;
        index  index.php index.html index.htm;

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+\.php)(/.+)$;
                fastcgi_pass unix:/run/php/php7.0-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
    }
}
  • 然后我这里将下载的php库文件放到/var/www/comment目录下。

代码实现

<?php
header("Content-type: text/html; charset=utf-8");
date_default_timezone_set("Asia/Shanghai");

/**
 * Created by Ihoey
 * User: Ihoey
 * Date: 17/6/22
 * Time: 15:00
 */

$receiver = $_REQUEST;
if(count($receiver) > 0) {
    $content = implode(',', $receiver);
    $json = json_decode($content);
    if(isset($json) && count($json) > 0) {
        require_once("./functions.php");
        $title = $json[0]->title;
        $url = $json[0]->url;
        $ctime = $json[0]->ctime;
        $date = date('Y-m-d H:i:s', $ctime/1000);
        $name = $json[0]->comments[0]->user->nickname;
        $userId = $json[0]->comments[0]->user->userId;
        $comment = $json[0]->comments[0]->content;
        $flag = sendMail('123456.qq.com',"您的博客收到一条来自{$name}({$userId})的新评论",
            "文章标题:<br/><a target='_blank' href='{$url}'>{$title}</a><br/><br/>评论内容:<br/>{$name}({$userId}): {$comment}<br/><br/>评论时间:<br/>{$date}<br/><br/><br/>{$content}");
        file_put_contents('./comment.txt', $flag ? "success!" : "failure!");
    }
}
?>

/**
 * comment.php
 */

设置回推

优化设置里面的回推结果设置如下就好http://yourDomain/comment.php;

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Node第二部分-模块及工具

    为了让 NodeJs 的文件可以相互调用,NodeJs 提供了一个简单的模块系统。 模块是 NodeJs 应用程序的基本组成部分,文件和模块是一一对应的。换言之...

    ihoey
  • 工具使用篇之Markdown

    实时预览工具只是为了达到所见即所得的效果而已, 适合初学者学习 Markdown , 我们真正在进行写作的时候,其实是不需要实时预览的, 因为 Markdown...

    ihoey
  • Node第一部分-初体验

    在 windows 上安装 NodeJs (本教程中使用)。使用 MSI 文件,并按照提示安装 NodeJs ,默认情况下,安装程序将 NodeJs 发行到 C...

    ihoey
  • Spring v4.1+ JSONP使用,以及jQuery跨域调用jsonp

    (补充:我擦,微信不支持代码复制,我的发!还是截图吧~) 如今的巨石应用已经越来越不行了,很多互联网在后期都会在用分布式的架构 那么在页面上不同的服务调用不同域...

    风间影月
  • SRC逻辑漏洞挖掘浅谈

    巧用搜索引擎首推谷歌查看了解SRC旗下涉及到的业务,收集其对应的业务下的域名,再进一步进行挖掘,如:

    HACK学习
  • 7.python常用模块

    time模块 常用表示时间方式: 时间戳,格式化的时间字符串,元组(struct_time) UTC(Coordinated Universal Time,世界...

    zhang_derek
  • python requests模块session的使用建议及整个会话中的所有cookie的方法

    用户1214487
  • Hadoop(十四)MapReduce原理分析

      上一篇我们分析了一个MapReduce在执行中的一些细节问题,这一篇分享的是MapReduce并行处理的基本过程和原理。

    大道七哥
  • 如何利用redis实现缓存

    redis是典型的非关系型数据库,支持key-value,hash,list,set等各种数据结构。那么如何利用redis实现缓存呢?

    zhangheng
  • SpringBoot核心【starter启动器】

      SpringBoot为我们提供了简化企业级开发绝大多数场景的starter pom,只要使用了应用场景所需要的start pom,相关的技术配置将会消除,就...

    用户4919348

扫码关注云+社区

领取腾讯云代金券