创建文件夹
mkdir -p $(pwd)/bbk-jd-qr/{conf,logs} && cd $(pwd)/bbk-jd-qr
启动容器
docker run -dit \
-v $PWD/conf:/data/conf \
-v $PWD/logs:/data/logs \
-p 3081:81 \
--name bbk-jd-qr \
--privileged=true \
neuynp8oido4ejj/jd-qr:latest
修改conf.json文件内容(每次修改conf.json需要重启容器) $(pwd)/conf 目录下的conf.json文件 填写token等信息
重启容器且查看启动是否有报错提示信息
docker restart bbk-jd-qr && docker logs bbk-jd-qr
浏览器访问:http://你的IP:3081
如下是conf.json文件参数介绍: 不推荐直接复制如下配置到conf.json 程序第一次启动会自动生成 修改里面参数值即可,如果还是要复制如下内容 则需要把 //和中文文字删除
{
"server": {
// 机器人获取的token(必填参数)
"token": "",
// 扫码成功后页面检测状态接口是否返回wskey true:返回 false不返回(可选参数)
"loginReturnCK": false,
// wskey安全考虑 推荐配置该加密秘钥,可手动设置(必须8-32位字符),如果enableEncrypt参数为true启用了wskey加密 此参数没设置时会随机生成一个,此秘钥需妥善保存 不能泄露!!!(可选参数)
"encryptKey": "",
// 推荐配置true。true:启用wskey安全加密 false:不启用wskey安全加密 (可选参数)
"enableEncrypt": false,
// 获取wskey之后是否将其转换成app_open(JD_COOKIE)上传至青龙 true:上传 false:不上传
"convertWskey": true
},
// 青龙相关配置(可选参数对象 可全部不填 如果填了 则以下参数都需要填写)
"qinglong": {
// 青龙面板ip IP格式 192.168.1.1 域名格式 qinglong.baidu.com (必须填写)
"ip": "",
//青龙面板端口(必须填写)
"port": 0,
// 青龙面板clientId (必须填写)
"clientId": "",
// 青龙面板clientSecret (必须填写)
"clientSecret": "",
},
// 扫码成功通知配置(可选参数对象)
"notify": {
"tgBot": {
// telegram机器人token (可选参数)
"botToken": "",
// 接收消息的用户ID (可选参数)
"userId": "",
// http代理,留空则不使用 格式:http://127.0.0.1:1080 (可选参数)
"proxyUrl": ""
},
// 扫码成功后自定义推送到下方url接口
"custom": {
// get请求的下面form和body都不用填写,get请求url填写格式:http://www.baidu.com?pin={pin}&wskey={wskey}
"url": "",
// 请求方式 可选参数:get或者post
"method": "post",
// form表单形式接收的参数 如果参数中带有特殊符号需要自己url转义一下. 格式:pin={pin}&wskey={wskey}
"form": "",
// json形式接收的参数 格式:{\"wskey\":\"{wskey}\",\"pin\":\"{pin}\"}
"body": "",
"headers": {
// 发送post表单形式则填写application/x-www-form-urlencoded 如果是post json形式的则填写application/json
"Content-Type": "application/x-www-form-urlencoded"
}
}
}
}
BBK京东扫码获取wskey,次数大于20000,获取成功扣5次! BBK京东扫码获取wskey,次数大于20000,获取成功扣5次! BBK京东扫码获取wskey,次数大于20000,获取成功扣5次!
1、老用户更新bbk京东扫码镜像(刚安装的跳过),一定要更新
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR bbk-jd-qr
2、使用方法 登录傻妞web后台>>脚本编辑>>最底下 新增脚本>>把代码放进去>>保存
代码:
/*
* @author
* @create_at 2023-04-01 12:39:47
* @create_at 2023-04-01 12:39:54
* @description 傻妞对接bbkv2登陆插件
* @title bbk扫码登陆
* @rule raw ^(登陆|登录)$
* @public false
* @disable false
* @admin false
* @version v1.0.2
* @priority 9999999999999999999999999999
*/
// ****重点***必须是最新版bbk v2 镜像更新指令:docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR bbk-jd-qr
// 傻妞对接bbkv2 指令 set jd_cookie bbk_jdurl http://ip:端口
//***** 对接芝士或者奶酪******默认对接芝士填 false 需要对接奶酪的填 true
let nailao = false;
//bbk镜像更新了,也对接了,发现是还是用不了的,把45行和146行的 bbk_JDURL 变量改为 你的bbk地址 "http://IP:端口" 需要引号的
const s = sender;
const sillyGirl=new SillyGirl();
let platform =s.getPlatform(); //获取消息平台
let userId=s.getUserId();//获取用户ID
let userName=s.getUserName(); //用户名称
// console.log("消息平台:"+platform+"\n用户ID:"+userId+"\n用户名称:"+userName);
let bbk_JDURL=new Bucket("jd_cookie").get("bbk_jdurl")
let pinqq = new Bucket("pinQQ");
let pinwx = new Bucket("pinWX");
let pintg = new Bucket("pinTG");
let jd_pin;
main()
function main(){
if(bbk_JDURL==''){
s.reply("叼毛,你没对接bbk")
return ;
}
let timeStamp = new Date().getTime();
let {body, headers, status}=request({
url: bbk_JDURL+"/d/getQR?force=1&t="+timeStamp,
method:"get",
// headers:{}
})
body=JSON.parse(body)
let set_Cookie=headers['Set-Cookie'][0];
set_Cookie=set_Cookie.substring(set_Cookie.indexOf('=') + 1, set_Cookie.indexOf(';'))
let cookies = `usr_=${set_Cookie}`;
let qr=CQ_Image("https://api.pwmqr.com/qrcode/create/?url="+body.data.qrUrl)
s.reply("用户:["+userName+"]\n请使用京东app扫码(支持截图扫码)\n"+qr)
sleep(4000)
if (body.code !== 200) {
if (body.errMsg) {
s.reply(body.errMsg);
return ;
} else {
s.reply("获取二维码出错了");
return ;
}
} else {
if (body.data.qr && body.data.timeout) {
let limit=180;
while(limit-->0){
let pd =getQR(cookies);
if(pd){
break;
}else if(pd==false){
return;
}
if(limit==1){
s.reply("登陆失败\n用户:["+userName+"]\n超时,二维码已失效");
return;
}
sleep(1000)
}
}
}
//绑定关系
if(nailao){ // 奶酪绑定关系
let pinDB = new Bucket("pinDB");
let bd_Key=platform+":"+userId
let db_value=pinDB.get(`${platform}:${userId}`)
if(db_value==""){
pinDB.set(bd_Key,`{"Pin":["${jd_pin}"],"Form":"${platform}","ID":"${userId}","Name":"","NotifyCode":{"${jd_pin}":1}}`)
tishi(jd_pin,'')
return ;
}else{
let pdd=db_value;
db_value=JSON.parse(db_value)
if(pdd.indexOf(jd_pin)!=-1){
tishi(jd_pin,null);
return ;
}else{
db_value.Pin.push(jd_pin)
db_value.NotifyCode[jd_pin]=1
pinDB.set(bd_Key,JSON.stringify(db_value))
tishi(jd_pin,1)
return ;
}
}
}else{ // 芝士绑定关系
if(platform=="qq"){
let cunZai=pinqq.get(jd_pin);//查找是否为老用户
pinqq.set(jd_pin, userId); //pin和社交账号绑定
tishi(jd_pin,cunZai); //提示
return ;
}else if(platform=="wx"){
let cunZai=pinwx.get(jd_pin); //查找是否为老用户
pinwx.set(jd_pin, userId); //pin和社交账号绑定
tishi(jd_pin,cunZai); //提示
return ;
}else if(platform=="tg"){
let cunZai=pintg.get(jd_pin); //查找是否为老用户
pintg.set(jd_pin, userId);//pin和社交账号绑定
tishi(jd_pin,cunZai); //提示
return ;
}
}
}
function CQ_Image(url){
return "[CQ:image,file="+url+",cache=0]"
}
// 上车提示
function tishi(pin,cunZai){
console.log("平台:"+platform+"\n用户名称:"+userName+"\n狗东用户:"+pin)
s.reply("提示:成功上车\n用户名称:"+userName+"\n狗东用户:"+pin);
s.reply("提示:请等5分钟后再查询动态信息")
if(cunZai==""){ //新用户
sillyGirl.notifyMasters("新用户上车\n平台:"+platform+"\n用户名称:"+userName+"\n狗东用户:"+pin)
}else{ //老用户
sillyGirl.notifyMasters("老用户更新\n平台:"+platform+"\n用户名称:"+userName+"\n狗东用户:"+pin)
}
}
// // 检测登陆状态,成功返回pin
function getQR(cookies){
let timeStamp = new Date().getTime();
let {body, headers, status}=request({
url:bbk_JDURL+"/d/status?t=" + timeStamp,
method:"get",
headers:{Cookie:cookies}
})
body=JSON.parse(body)
if (body.code == 500 || body.code == 202) {
s.reply("登陆失败\n用户:["+userName+"]\n超时,二维码已失效");
return false;
} else if (body.code == 408) {
s.reply("登陆失败\n用户:["+userName+"]\n超时,二维码已失效");
return false;
} else if (body.code == 410 && body.data) { //登陆成功
let pin = body.data.msg;
jd_pin=pin.substring(pin.indexOf('[') + 1, pin.indexOf(']'))
return true;
} else {
// return false;
}
}
3、对接傻妞对接bbk扫码指令 后面不要带斜杠
set jd_cookie bbk_jdurl http://ip:端口
完事收工
默认是对接芝士的,需要对接奶酪的把代码20行的false 改为 true let nailao = true; bbk镜像更新了,也对接了,发现是还是用不了的,把45行和146行的 bbk_JDURL 变量改为 你的bbk地址 "http://IP:端口" 需要引号的 45行 url: "http://IP:端口"+"/d/getQR?force=1&t="+timeStamp, 146行 url:"http://IP:端口"+"/d/status?t=" + timeStamp,