oicq和node-onebot的配置是一样的。
我们在linux安装node-onebot或oicq并登录。
我们来学习配置如何实现与返利狗的对接。
我们用ssh命令工具进入服务器。
进入我们安装的node-onebot或oicq所在目录。
如果你安装的是oicq,oicq的配置文件在 /root/.oicq 目录下。
cd /root
cd node-onebot
先暂停QQ的运行。如果你是用的pm2。
pm2 stop "node main QQ号"
用vi 编辑config.js文件,或者你用winscp连接接到服务器,用Windows的编辑工具,编辑完了再传上去覆盖也行。
vi config.js
会看到node-onebot的默认配置文件。我们需要修改标黄的位置。下面是默认的配置文件内容:
"use strict";
module.exports = {
//通用配置
general: {
platform: 1, //1:安卓手机 2:aPad 3:安卓手表 4:MacOS 5:iPad
debug: false, //开启debug
use_cqhttp_notice: true, //是否使用cqhttp标准的notice事件格式
host: "0.0.0.0", //监听主机名
port: 5700, //端口
use_http: false, //启用http
use_ws: false, //启用正向ws,和http使用相同地址和端口
access_token: "", //访问api的token
secret: "", //上报数据的sha1签名密钥
post_timeout: 30, //post超时时间(秒)
post_message_format:"array", //"string"或"array"
enable_cors: false, //是否允许跨域请求
enable_heartbeat: false, //是否启用ws心跳
heartbeat_interval: 15000, //ws心跳间隔(毫秒)
rate_limit_interval:500, //使用_rate_limited后缀限速调用api的排队间隔时间(毫秒)
event_filter: "", //json格式的事件过滤器文件路径
post_url: [ //上报地址,可以添加多个url
// "http://your.address.com:80",
],
ws_reverse_url: [ //反向ws地址,可以添加多个url
// "ws://your.address.com:8080",
],
ws_reverse_reconnect_interval: 3000, //反向ws断线重连间隔(毫秒),设为负数直接不重连
ws_reverse_reconnect_on_code_1000: true, //反向ws是否在关闭状态码为1000的时候重连
},
//每个账号的单独配置(用于覆盖通用配置)
147258369: {
},
};
// 安全注意:
// 监听0.0.0.0表示监听网卡上的所有地址。如果你的机器可以通过公网ip直接访问,同时你也没有设定access_token,则被认为是极不安全的。
// 你应该知道这样做会导致以下后果:任何人都可以无限制地访问你的Bot的所有API接口。
// 如果只需要在本地访问,建议将监听地址改为localhost。需要通过公网访问,你最好设定access_token。
简单说明:返利狗和onebot(oicq)之间是靠http通讯的。所以我们要打开onebot的http服务。
把上面
use_http: false, //启用http
改成:
use_http: true, //启用http
然后把上报地址:
// "http://your.address.com:80",
前面的双斜杠去掉,后面的http://your.address.com:80
改成我们返利狗的回调地址,返利狗的回调地址在系统配置-通讯api接口配置-QQ回调地址(拷贝到QQ框架),里面找到。
改成,如:
"http://127.0.0.1:15888/notify/qqreceive",
注意上面这条地址双引号包起来的,最后还有个小逗号,它的意思是你可以添加多条回调地址,不仅局限于返利狗这一个软件的。我们改完后的配置就变成了下面这个样子。
"use strict";
module.exports = {
//通用配置
general: {
platform: 1, //1:安卓手机 2:aPad 3:安卓手表 4:MacOS 5:iPad
debug: false, //开启debug
use_cqhttp_notice: true, //是否使用cqhttp标准的notice事件格式
host: "0.0.0.0", //监听主机名
port: 5700, //端口
use_http: true, //启用http
use_ws: false, //启用正向ws,和http使用相同地址和端口
access_token: "", //访问api的token
secret: "", //上报数据的sha1签名密钥
post_timeout: 30, //post超时时间(秒)
post_message_format:"array", //"string"或"array"
enable_cors: false, //是否允许跨域请求
enable_heartbeat: false, //是否启用ws心跳
heartbeat_interval: 15000, //ws心跳间隔(毫秒)
rate_limit_interval:500, //使用_rate_limited后缀限速调用api的排队间隔时间(毫秒)
event_filter: "", //json格式的事件过滤器文件路径
post_url: [ //上报地址,可以添加多个url
"http://127.0.0.1:15888/notify/qqreceive",
],
ws_reverse_url: [ //反向ws地址,可以添加多个url
// "ws://your.address.com:8080",
],
ws_reverse_reconnect_interval: 3000, //反向ws断线重连间隔(毫秒),设为负数直接不重连
ws_reverse_reconnect_on_code_1000: true, //反向ws是否在关闭状态码为1000的时候重连
},
//每个账号的单独配置(用于覆盖通用配置)
147258369: {
},
};
// 安全注意:
// 监听0.0.0.0表示监听网卡上的所有地址。如果你的机器可以通过公网ip直接访问,同时你也没有设定access_token,则被认为是极不安全的。
// 你应该知道这样做会导致以下后果:任何人都可以无限制地访问你的Bot的所有API接口。
// 如果只需要在本地访问,建议将监听地址改为localhost。需要通过公网访问,你最好设定access_token。
配置文件中只改了两处地方。
好了,onebot的配置我们就搞定了。接下来我们按esc输入:wq保存vi编辑的内容,重新启动onebot,当onebot有消息的时候,也会发给我们返利狗一份了。
如图:
上面,我们只是完成了让onebot发消息给返利狗(回调),如果我们要实现返利狗调用onebot发消息该如何实现呢?
这里我们要去返利狗的配置那里
将onebot的QQHttpApi设置为上面我们安装配置的onebot的对应http地址即可。
假如我们onebot这台机器的地址是http://192.168.1.100端口号我们没改,用的默认的5700。
就在返利狗那里把qq的QQHttpApi地址填写为http://192.168.1.100:5700 如图:
这样子,返利狗就能用onebot发消息了,我们用其他qq给机器人qq发送一条time指令,看看能不能回复消息。
如图:
至此,onebot(oicq)配置与返利狗的对接就结束了。
下面说一下一些特殊情况:
很多人配置完了,发现并没有成功。
我来总结下哪些因素会导致失败。
1,防火墙,linux也有防火墙,windows也有防火墙,你可以尝试临时关闭防火墙再测试!
2,云主机的安全策略,如果你是部署在云服务器上的,你就要去云服务器控制面板开放主机的对外开放端口。
3,很多云主机内部不能用127.0.0.1作为通讯ip,即使是本机访问本机也不能。需要把ip改成云主机的公网IP。
4,检查端口是否可以用浏览器访问,这是检查问题的有用方法!
5,目前就想到这么多,以后再想到会来这里更新。配置时仔细观察变量,不要写错了。
打卡升级
努力升级