BBK扫码登录安装教程

  1. 创建文件夹

    mkdir -p $(pwd)/bbk-jd-qr/{conf,logs} && cd $(pwd)/bbk-jd-qr
  2. 启动容器

    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

  3. 修改conf.json文件内容(每次修改conf.json需要重启容器)
    $(pwd)/conf 目录下的conf.json文件 填写token等信息
  4. 重启容器且查看启动是否有报错提示信息

    docker restart bbk-jd-qr && docker logs bbk-jd-qr
  5. 浏览器访问: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次!

log次数购买: 点此跳转

对接傻妞扫码登陆插件教程

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,

分类: 青龙傻妞 标签: 傻妞BBK

评论

暂无评论数据

暂无评论数据

目录