本年520活动和618活动开端的时分,京东的京豆报到福利很大,动不动便是1020个京豆,看的小编是激动不已。

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水
我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水
便是每天都要报到,有时分忙工作忘掉报到,一旦断签了心境很是失落,比京豆丢失还要难过。小编突发奇想,能够不能够有ios16方法每天守时主动报到呢?经过小编一番苦心研讨,发现竟然真的能够!!
我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水
小编先共享一点小小的战果给各位,有图有真相:

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水
小编把相关脚本,用免费的云函数每天守时主动部署触发报到,现在开端每天躺着领json格式怎么打开10几个京豆,每个月攒的京豆乃至能够免费喝一瓶肥宅高兴水!!!

接下来小编给大家共享一下主动领京approach豆的JS代码思路,中心代码只需要80行,就能够在Node端成功收取京豆啦!

重要声明:本文只电脑截图共享主动脚ios15本的思路和部分中心代码逻辑,旨在协助大家更好的学习Node端技能云函数的相关常识。为了规避相关风险,文章内并不会直接供给源码,思路实现有困难的小伙伴能够咨询小编协助~

重要声明:少数刷京豆能够怡情,挣几个硬币。不要利用相关技能从事商业活动呦!

如果这篇文章能给您带来一点点的协助的话,费事移动下鼠标点个❤️赞❤️吧!您的点赞会给json解析笔者带来更新的继续动力!

Step.1 身份approve验证–获取用户cookiejson数据

显然第一步咱们先要获取咱们的用户信息approve才能每次用脚本主动报到。作为JS前端开发人员,大家都知道用户信息一般都会存储在cookie中(京东的cookieios越狱有效时间为30天)。接下来咱们只需要登录移动版m.jd.com,电脑锁屏快捷键通过用户名和密码登录(切记),登录完结之后咱们就能够在接口找到request恳求携带的cookie,如下图所示:

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水

咱们只要登接口卡录完结之后,取出request头里ios下载的必要cookie值即可,第一步现已完结了,是不是很简单呢!⭐️

Step.2接口类型 服务端发送主动报到接口

拿到cookie之后,咱们只需要找到报到收取京豆的相关接口,把cookie依照正确的格式传过去就好啦!代码也很简单(每一行都有json解析注释哦):

const request = require('request');
//过程一种的cookie值
const KEY = 'pt_pin=xxxxx;pt_key=xxxxx;';
// post通用函数
const postMethod = (options, callback) => {
    // 补上通用的headers
    options.headers['User-Agent'] = 'JD4iPhone/167169 (iPhone; iOS 13.4.1; Scale/3.00)'
    if (options.body) {
        options.headers['Content-Type'] = 'application/x-www-form-urlencoded'
    }
    request.post(options, (error, response, body) => {
        callback(error, response, body)
    })
}
//先去查询用户基本情况 预报到接口
// key:活动关键字 用去区分多种活动  title: 活动标题   acData: 活动编码    ask:加密活动秘钥(非必须) 
function JDUserSignPre(key, title, acData, ask) {
    return new Promise((resolve, reject) => {
        const JDUrl = {
            url: 'https://api.m.jd.com/?client=wh5&functionId=qryH5BabelFloors',
            headers: {
                Cookie: KEY
            },
            //京东接口要求的事务字段 需要去自行爬接口哦
            opts: {
                'filter': 'try{var od=JSON.parse(body);var params=(od.floatLayerList||[]).filter(o=>o.params&&o.params.match(/enActK/)).map(o=>o.params).pop()||(od.floorList||[]).filter(o=>o.template=="signIn"&&o.signInfos&&o.signInfos.params&&o.signInfos.params.match(/enActK/)).map(o=>o.signInfos&&o.signInfos.params).pop();var tId=(od.floorList||[]).filter(o=>o.boardParams&&o.boardParams.turnTableId).map(o=>o.boardParams.turnTableId).pop();var page=od.paginationFlrs;return JSON.stringify({qxAct:params||null,qxTid:tId||null,qxPage:page||null})}catch(e){return `=> 过滤器产生错误: ${e.message}`}'
            },
            //京东接口要求的事务字段 需要去自行爬接口哦
            body: `body=${encodeURIComponent(`{"activityId":"${acData}"${ask ? `,"paginationParam":"2","paginationFlrs":"${ask}"` : ``}}`)}`
        };
        postMethod(JDUrl, async function (error, response, data) {
            try {
                if (error) {
                    throw new Error(error)
                } else {
                    const resultData = JSON.parse(data || '{}');
                    if (data.match(/enActK/)) { // 含有报到数据
                        console.log(`${title}活动查询成功,含有报到数据, 此处能够集中存储${key}用于一致计算活动情况`);
                        const params = resultData.qxAct || (resultData.floatLayerList || []).filter(o => o.params && o.params.match(/enActK/)).map(o => o.params).pop()
                        resolve({
                            params: params
                        }); // 履行报到处理
                    }
                }
            } catch (eor) {
                reject()
            }
        })
    })
}
//报到接口
function JDUserSign(title, body) {
    const JDUrl = {
        url: 'https://api.m.jd.com/client.action?functionId=userSign',
        headers: {
            Cookie: KEY
        },
        body: `body=${body}&client=wh5`
    };
    postMethod(JDUrl, function (error, response, data) {
        try {
            if (error) {
                throw new Error(error)
            } else {
                // 报到成功!
                if (data.match(/报到成功/)) {
                    console.log(`n${title}报到成功(1)`)
                    if (data.match(/"text":"d+京豆"/)) {
                        const count = data.match(/"text":"(d+)京豆"/)[1];
                        console.log('成功收取京豆数量为:' + count);
                    }
                } else {
                    console.log('报到失利')
                }
            }
        } catch (err) {
            console.log(err);
        }
    })
}
// 正式开端履行报到
const key = 'JDComputer';
const title = '京东电脑-数码';
const acData = '31HbNBjr6YLyZfJtR5biFFc9ZYXN';
JDUserSignPre(key, title, acData).then(checkRes => {
    JDUserSign(title, checkRes)
}).catch(err => {
    console.log('预查询活动是否能够报到失利', err);
})

这样咱们只需要80行代码就完结了第一个报到领京豆接口。所有的活动a电脑截图cData都能够在活动H5页面接口中找到。

其他活动能够自己去寻找appointment哦~~

Step.3 云函数主动触发接口调用,躺着喝高兴水!

阿里云函数供给了非常齐备的底层接口,上层的使用ios系统比较简单接口和抽象类的区别方便。参阅云函数文档基础上,装备好入口函数main.js和装备好守时触发器ios15,即可实现守时调用setp2过程中的接电脑锁屏快捷键口。然后到达躺着报到攒京豆的意图json怎么读!!

另外,仍是要注意一下几点即可完结一个云函数搭建:

1、如果需要查询报到的活动接口许多,接口ios模拟器超时时间需要设置成最电脑怎么重装系统大900s。

2、Njsonpode环境版本号版本号要选择14+。

3、守时触发器的cron表达式为:approve CRON_TZ=Asiaappearance/Shanghai 0 30 1 * * *

贴上过程图:

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水
我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水
我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水

Stejsonobjectp.4 (附jsonp加) 将接口调用情况发送到微信

虽然前面三个过程,咱们现已完结了守时调用接口报到收取京豆,现已能够到达意图。可是随着cookie过期或电脑开不了机者其他不可抗力因素,难免会存在接口调用失利的情况,那么咱们怎ios是苹果还是安卓么能知道接口调用成功了呢? 答案便是:

通过特定大众号开发的音讯接口,云函数服务端对接特定大众号的appearance接口,然后到达发送音讯的意图。

小编ios模拟器引荐使用Se接口文档rver酱微信告诉,使电脑怎么重装系统用方法也比较json格式怎么打开简单:

1、翻json文件是干什么的开 sc.ftqq.com/3.versiojson格式n 按要求绑定微信推。

2、翻开sc.ftqq.com/?c=code获取含有用户信息的音讯JSON秘钥scretKey

3、用get恳求(能够在浏览器直接访问)发送sc.ftqq.com/${scretKey}… 即可完结音讯发送!

Step.5 写在最终

完结以上过程 即可自由的实现京豆报到喽! 各ios模拟器位读者能ios是苹果还是安卓够顺着小编的思路进行代码开发,也能够去寻找网络上现成的源码资源哦~ 最终欢迎各位一同讨论,一同愉快的躺着喝肥宅高兴水!!

我用80行中心JS代码每个月躺着挣一瓶肥宅高兴水

如果这篇文章能给您带来一点点的协助的话,费事移动下鼠标点个❤️赞❤️吧!您appreciate的点赞会给笔者带来更新的继续动力!