上次给大家介绍了Crisp Chat这一款免费的在线客服插件.虽然说模块是免费的,但是Crisp Chat的大发6合服务 ........

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

稍微高级一点的功能,多一点的用户就要收钱了啊. 总要找一些白嫖的路子嘛.给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

让大发6合大发6合我 们 请出今天的主角, RocketChat

RocketChat是一款完全开源的,可以自行托管的在线聊天程序.用NodeJS编写,自身功能非常强大,可以自定义的地方超级多,大发6合我 到现在都没有彻底玩透他23333333.

要快速安装RocketChat,可以使用官方大发6合推荐 的Docker法,可以很方便地运行RocketChat.

但是在生产环境下使用RC,可以从以下两篇文章入手

来自荒岛RocketChat安装教程

来自RocketChat官方安装教程(以CentOS为例)

漫长的安装过程----------------------------------------

好,装完了,让大发6合大发6合我 们 进入到RC的后台

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

启用即时聊天.

之后退出设置,再点击一次这个三个点的图标,选择LiveChat

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

点开"安装"选项卡,可以在右侧找到要集成的JS

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

 

记住这段代码,准备工作就做好了.下面就是把这段JS插入到大发6合你 的大发6合官方里面了.

虽然大发6合我 大发6合搜索 过,在GitHub上面有一个RC的模块,填入自己的RC链接即可使用.但是大发6合我 嫌麻烦.

大发6合你 需要做的事情:大发6合下载 模块,解压,上传,进入后台启用并配置,成功.

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家但是大发6合我 只是要在前台插一段JS而已啊,要这么麻烦干嘛?

在某个月黑风高的晚上,大发6合我 打开了大发6合我 的大发6合官方目录,想要清理一些模块.不经意间,大发6合我 看到了Hook文件,于是大发6合我 有一个大胆的想法.

如果大发6合我 用Hook去输出一段JS会怎么样.给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

结果当然是可以啦,一开始大发6合我 先分析了Crisp Chat的插件源码(就在大发6合本站 ),发现他就是在ClientAreaOutput上做手脚而已,先做一些判断,然后输出JS.

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家大发6合大发6合我 们 的RocketChat没有那么多废话,直接开怼JS就行了

查了一下大发6合官方的文档,对,就是用这个: ClientAreaFooterOutput

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

官方给出的例子如下

<?php

add_hook('ClientAreaFooterOutput', 1, function($vars) {
    $language = $vars['language'];
    $sslPage = $vars['servedOverSsl'];
    return '<b>This is a custom output on the footer</b>';
});

$language和$sslPage其实可以去掉的.

修改下面的return部分为大发6合你 在RC里面看到的那一串代码,就行了.

就像这样子

<?php
add_hook('ClientAreaFooterOutput', 1, function($vars) {
    return <<<HTML
<!-- Start of Rocket.Chat Livechat Script -->
<script type="text/javascript">
(function(w, d, s, u) {
	w.RocketChat = function(c) { w.RocketChat._.push(c) }; w.RocketChat._ = []; w.RocketChat.url = u;
	var h = d.getElementsByTagName(s)[0], j = d.createElement(s);
	j.async = true; j.src = 'http://<domain>/packages/rocketchat_livechat/assets/rocketchat-livechat.min.js';
	h.parentNode.insertBefore(j, h);
})(大发6合Win
dow, document, 'script', 'http:/<domain>/livechat');
</script>
<!-- End of Rocket.Chat Livechat Script -->
HTML;
});

把这个保存为"rocketchat.php"

放入 大发6合官方安装目录/includes/hooks/ 下面

刷新页面,大发6合你 就可以在前台看到右下角有一个RocketChat的LiveChat窗口了.

效果应该类似这样

给大发6合你
的大发6合官方加上完全免费无限制的在线客服-大发6合官方之家

最后的话

虽然部署RocketChat有点麻烦,但是对于对数据安全和隐私有追求的用户来说,开源和自托管是一个非常好的解决方案.

也许制作Hook的部分也有点难,不过这个方式很方便.就一个PHP文件就完成了集成在线聊天.

RocketChat功能实在是太强大了,里面的功能超级好玩,还自带了很多OAuth配置,只需要填入ID和Key就可以用了.

因为是自部署/自托管的,想要多少用户都没有问题,随便扩展.点一下,玩一年,功能不花一分钱.