说明: 免费在线客服系统如百度商桥(爱番番)等已开始进入收割期,公告表示百度将于六月份开始不再免费对外开放,这对大多数企业站来说无疑是灾难性的消息。其实免费的解决方案也并不少例如 whisper、wolive等,而我选择 GO-FLY 因为它更接近百度商桥也是电商解决方案该有的形态。

GO-FLY.jpg

项目介绍

GO-FLY,一套可私有化部署的免费在线客服系统,基于Golang开发仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能。网站只需嵌入一段js或跳转直连地址即可快速接入客服,访客端支持电脑、手机页面自适应。

界面截图

Github开源地址:戳这里
项目演示地址:戳这里

截图1.png
截图2.png
截图3.png

安装教程

一、安装 Go 语言环境

1、下载安装包并解压到指定目录,其它系统版本请自行查看 -> 下载地址

wget https://golang.google.cn/dl/go1.16.4.linux-amd64.tar.gz
tar xzf go1.16.4.linux-amd64.tar.gz -C /usr/local

2、配置全局变量

使用vim修改 .bashrc文件

vim ~/.bashrc

配置文件追加以下内容:

#添加GOPATH路径
export GOPATH=/usr/local/go
export PATH=$GOPATH/bin:$PATH

#添加GOROOT路径
export GOROOT=/usr/local/go  
export GOPATH=$PATH:$GOROOT/bin 

3、使配置生效

source ~/.bashrc

4、验证安装是否成功

go version
go version go1.16.4 linux/amd64

二、配置安装 GO-FLY 服务端

1、下载源码

# 基于go module使用代理
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

# 选择任意目录,这里演示使用root目录
cd ~

# 克隆源码
git clone https://github.com/taoshihan1991/go-fly.git

# 更新依赖文件
cd go-fly
go mod tidy

2、若有需要可以对源码进行修改,然后执行源码打包,会生成一个名为go-fly的执行文件。

 go build go-fly.go

3、SSH终端运行mysql -u root -p输入密码进入mysql,创建数据库名为gofly的数据库(数据库名随意);

# 创建数据库gofly
create database gofly charset utf8;

# 退出
quit

4、使用 vim 修改 ~/go-fly/config/mysql.json文件

{
        "Server":"localhost",
        "Port":"3306",
        "Database":"填写数据库名",
        "Username":"填写数据库用户",
        "Password":"填写数据库密码"
}

3、导入数据库

# 导入数据库会删除表并且清空数据
./go-fly install

4、服务端运行及常用命令

# 运行服务端,其中-p参数指定端口,-d参数可后台运行,-h为查看帮助 
./go-fly server [可选 -p 8082 -d]

# 关闭程序
./go-fly/go-fly stop

# 杀死进程
pkill go-fly

若没有特别指定端口号则默认使用8081端口,运行./go-fly server开启服务端后,浏览器输入http://ip:8081可访问前台,http://ip:8081/login为后台登录地址。

# 管理后台默认账号密码
商户账户:kefu2/kefu3
默认密码:123

三、反向代理绑定域名并使用HTTPS

Nginx 配置文件参考如下:(注意反向代理的端口号、SSL证书绝对地址、绑定的域名)

server{
        listen 80;
        server_name  kefu.moewah.com;
        rewrite ^/(.*)$  https://kefu.moewah.com/$1 permanent;
}

server {
        listen 443 ssl http2;
        server_name  kefu.moewah.com;
        ssl_certificate /etc/nginx/ssl/fullchain.cer;
        ssl_certificate_key  /etc/nginx/ssl/moewah.com.key;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_trusted_certificate /etc/nginx/ssl/fullchain.cer;
        resolver 8.8.8.8 8.8.4.4 223.5.5.5 valid=3600s;
        resolver_timeout 2s;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS';
        ssl_prefer_server_ciphers on;
        add_header Strict-Transport-Security "max-age=31536000";
        location / {
                proxy_pass http://127.0.0.1:8082;
                proxy_http_version 1.1;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Origin "";
        }
}

关于免费SSL证书申请与使用,请参考相关文章《免费申请Let's Encrypt泛域名SSl证书》 以及《使用Caddy申请免费的Let’s Encrypt泛域名SSL证书》

四、配置 GO-FLY 前端使用

请在需要使用的WEB页面页脚区域添加下面代码(记得替换为自己的域名),根据自己的需求选择性添加。

1、默认显示按钮

<script src="https://kefu.moewah.com/assets/js/gofly-front.js"></script>
<script>
    GOFLY.init({
        GOFLY_URL:"https://kefu.moewah.com/", //修改为自己的域名
        GOFLY_KEFU_ID: "kefu2",//对接的客服name
        GOFLY_BTN_TEXT: "欢迎咨询", //按钮显示的名称
        GOFLY_LANG:"cn" 
    })
</script>        

2、隐藏按钮

<script src="https://kefu.moewah.com/assets/js/gofly-front.js"></script>
<script>
    GOFLY.init({
        GOFLY_URL:"https://kefu.moewah.com/", //修改为自己的域名
        GOFLY_KEFU_ID: "kefu2",//对接的客服name
        GOFLY_BTN_TEXT: "欢迎咨询", //按钮显示的名称
        GOFLY_WITHOUT_BTN:"true", //隐藏按钮
        GOFLY_LANG:"cn" 
    })
</script>            

通过按钮点击事件调用聊天窗口的方法,示例:

<a  href="javascript:GOFLY.showPanel();" class="Btn">在线咨询</a>

3、直链模式

# 将域名修改为自己的,通过访问链接进行直接会话
https://kefu.moewah.com/chatIndex?kefu_id=[客服ID]
Last modification:June 9th, 2021 at 11:14 am
觉得文章有用,请随意赞赏