前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >BBK扫码登录的安装和对接傻妞扫码登陆插件详细教程

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

作者头像
季春二九
修改2023-04-06 17:15:43
2K0
修改2023-04-06 17:15:43
举报
文章被收录于专栏:傻妞机器人

BBK扫码登录安装教程

创建文件夹

代码语言:javascript
复制
mkdir -p $(pwd)/bbk-jd-qr/{conf,logs} && cd $(pwd)/bbk-jd-qr

启动容器

代码语言:javascript
复制
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等信息

重启容器且查看启动是否有报错提示信息

代码语言:javascript
复制
docker restart bbk-jd-qr && docker logs bbk-jd-qr

浏览器访问:http://你的IP:3081

如下是conf.json文件参数介绍: 不推荐直接复制如下配置到conf.json 程序第一次启动会自动生成 修改里面参数值即可,如果还是要复制如下内容 则需要把 //和中文文字删除

代码语言:javascript
复制
{
 "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京东扫码镜像(刚安装的跳过),一定要更新

代码语言:javascript
复制
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR bbk-jd-qr

2、使用方法 登录傻妞web后台>>脚本编辑>>最底下 新增脚本>>把代码放进去>>保存

代码:

代码语言:javascript
复制
/*
* @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扫码指令 后面不要带斜杠

代码语言:javascript
复制
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,

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • BBK扫码登录安装教程
    • log次数购买: 点此跳转
    • 对接傻妞扫码登陆插件教程
    • 其他注意事项
    相关产品与服务
    容器服务
    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档