修改CommentToMail插件,评论公众号和邮箱同步推送
之前写过一篇类似的文章操作说明。原文章传送门→[利用公众号的模板消息把评论/留言推送到微信][1]
但是我觉得,太麻烦了(改的多,插件也多)。正好换了主题,插件全部卸载了,需要什么再重新安装。微信推送评论只需要一个插件CommentToMail+代码重改即可实现。 CommentToMail这个插件应该是大多数Typecho博主都会安装的必备之一吧。 最终通过4步,马上就能和邮箱同步收到评论消息推送啦!
申请公众号
特别说明:个人公众号目前已不支持模板消息。所以咱们申请测试公众号。测试公众号真的是简单又方便。
- 点击微信公众号测试号 申请。
- 填写
JS接口安全域名。就是你的博客地址。 - 配置模板消息。如下:
来自:{{title.DATA}}
名称:{{name.DATA}}
邮箱:{{email.DATA}}
内容:{{content.DATA}}
- 记录下你的appID、appsecret、微信号openid、模板ID
插件安装
自行安装或者已安装的略过。未安装的可用下面云盘下载。 链接: https://pan.baidu.com/s/17AY1vE62eiI2OnWR0kAY0w 密码: ovps
代码修改
- 打开插件目录
/usr/plugins/CommentToMail,编辑Action.php文件 - 在最下方,最后一个
}前面,增加一下代码
/**
* 功能:获取access_token
*
* @param $code
* @return mixed
*/
public function get_access_token($config)
{
<!--INLINEMATH0-->config['app_id'];
<!--INLINEMATH1-->config['secret'];
<!--INLINEMATH2-->appid.'&secret='.$appsecret;
<!--INLINEMATH3-->this->http_GET($url));
if($data->errcode){
return '';
}
return $data->access_token;
}
// 发送模板消息
public function send_template(<!--INLINEMATH4-->config,<!--INLINEMATH5-->access_token){
<!--INLINEMATH6-->access_token;
//定义消息模板JSON
<!--INLINEMATH7-->this->json_tempalte(<!--INLINEMATH8-->config['template_id'],<!--INLINEMATH9-->mailInfo->title,<!--INLINEMATH10-->mailInfo->mail,$mailInfo->text);
//发送POST请求
list(<!--INLINEMATH11-->returnContent) = <!--INLINEMATH12-->url, $json_template);
//打印日志(JSON格式)
echo '发送结果如下:' . $returnContent . '\n';
// return '1';
}
//模板消息JSON格式化
public function json_tempalte(<!--INLINEMATH13-->template_id, <!--INLINEMATH14-->title, <!--INLINEMATH15-->email, $content)
{
//内容格式化
<!--INLINEMATH16-->content);
//模板消息
$template = array(
'touser' => $openid,
'template_id' => $template_id,
'topcolor' => "#FF0000",
'url' => $url,
'data' => array(
'title' => array('value' => $title, 'color' => "#000000"),
'name' => array('value' => $name, 'color' => '#000000'),
'email' => array('value' => $email, 'color' => '#000000'),
'content' => array('value' => $content, 'color' => '#000000'),
)
);
<!--INLINEMATH17-->template);
return $json_template;
}
//发送POST请求
public function http_post_json(<!--INLINEMATH18-->jsonStr)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt(<!--INLINEMATH19-->url);
curl_setopt(<!--INLINEMATH20-->jsonStr);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json; charset=utf-8',
'Content-Length: ' . strlen($jsonStr)
)
);
<!--INLINEMATH21-->ch);
<!--INLINEMATH22-->ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return array(<!--INLINEMATH23-->response);
}
//发送GET请求
public function http_GET($url)
{
$ch = curl_init();
curl_setopt(<!--INLINEMATH24-->url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
<!--INLINEMATH25-->ch);
<!--INLINEMATH26-->ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $response;
}
- 上方代码搜索
$log .= "向博主发信";。在下面增加以下代码:
//向博主发微信
$config = array(
'app_id'=> '你的app_id',
'secret'=> '你的secret',
'template_id'=> '你的模板ID'
);
$openid = '你的openid';
<!--INLINEMATH27-->this->get_access_token($config);
<!--INLINEMATH28-->mailInfo,<!--INLINEMATH29-->openid,$access_token);
微信的4个配置参数,其实也可以添加到后台设置外观处,我懒得改了。
完工
这样就大功告成了,快去测试吧!

7 个赞

必须滴。邮件不经常看。微信是随时看。
