BBK扫码登录的安装和对接傻妞扫码登陆插件详细教程

季春二九 2023-4-4 2 4/4

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,

- THE END -
Tag:

季春二九

4月04日08:50

最后修改:2023年4月4日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论