梦魇小栈

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

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

  • 网易云跟帖的安装这里就不多说了,照着网上的教程走一遍或者按官方的文档基本上就可以了,不过提醒一下,网易云跟帖不能在本地测试,必须部署完成才会显示!

  • 接下来才是本篇文章的重点。也是云跟帖不足的一个地方。之前多说收到评论会在博客的右上角提示,云跟帖就没有这个功能,而且也不会收到邮件,这样就不能即时的处理评论。好在提供了收到评论的回调功能,所以我们自己来实现发送邮件的功能。

数据回推

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[
{
"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,

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    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目录下。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?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;

------ 有问题请 留言给我哦! 或者私信我的 微博 ------
满分是10分的话,这篇文章你给几分,您的支持将鼓励我继续创作!