代码不到50行,实现稀土掘金社区自动签到

简介: 我们这里采用的技术栈是Node.js。代码不到50行,先贴上代码。

我们这里采用的技术栈是Node.js。代码不到50行,先贴上代码。


const Koa = require('koa');
const schedule = require('node-schedule');
const _request = require('request');
const app = new Koa();
// 自定义
const sessionid = ''; // SessionID
const url = ''; // Url
const options = {
    url: url,
    method:'post',
    headers: {
        'cookie': 'sessionid='+ sessionid,
    },
}
// 适配Koa
function request(url, options) {
    return new Promise(function (resolve, reject) {
        _request(url, options, function (error, response, body) {
            error && reject(error);
            resolve(response, body);
        })
    })
}
// 输出信息
async function start (ctx, next) {
    const res = await request(options);
    console.log(res.body)
}
const rule = '30 10 0 * * *'; // 每天的凌晨0点10分30秒触发'
// 定时任务
const scheduleCronstyle = ()=>{
    schedule.scheduleJob(rule,()=>{
        start();
    });
}
app.listen(3000,()=>{
    console.log('服务启动成功!');
    scheduleCronstyle(); // 定时启动
    // start(); // 立即启动
})


这些代码就可以实现一个掘金自动签到功能,再也不用自己手动点击签到了!


自定义


下面,我教大家怎么来进行操作,首先看下源码中的这段代码。


// 自定义
const sessionid = ''; // SessionID
const url = ''; // Url


你需要改动这两行代码,严格来说,你仅仅需要改动一行。为什么呢?下面听我道来。


首先,我们来看下url这个变量是从哪里获取。


  1. 在网页登录你的掘金账号;
  2. 打开签到页面(如果没签到,就点击签到);
  3. 打开控制台,切换到网络选项卡,找到/check_in_rules这个接口,然后把后面的字符串(以aid=开头)复制保存。
  4. 然后把刚才保存的字符串拼接到

https://api.juejin.cn/growth_api/v1/check_in?后面。


例:https://api.juejin.cn/growth_api/v1/check_in?aid=?&uuid=?&_signature=?


以后,你就不用每次都进行上面这些操作了,只需一次。


然后,我们接着看下sessionid这个变量是从何而来的。


  1. 同样,我们打开控制台;
  2. 切换到应用选项卡下,找到Cookie选项,点击https://juejin.cn
  3. 找到sessionid名称,复制对应值即可。


因为Cookie有时间期限,但是一般都几个月左右,够用的了。过期了,重新替换下即可。


结语


有云服务器的小伙伴,你可以使用pm2持久运行Node应用。



相关文章
|
4月前
|
缓存
如何实现一个每日打卡签到功能
如何实现一个每日打卡签到功能
211 0
支付系统40------定时查单-订单未创建,支付宝登陆前在支付宝端创建还是没有创建,不知道,之所以打印警告日志,是因为创建的时候更容易看到它
支付系统40------定时查单-订单未创建,支付宝登陆前在支付宝端创建还是没有创建,不知道,之所以打印警告日志,是因为创建的时候更容易看到它
支付系统34----支付成功异步通知,处理重复通知,我们在我们程序当中找到处理订单的processOrder方法,我们要在更新订单状态和记录日志之前,先处理重复通知
支付系统34----支付成功异步通知,处理重复通知,我们在我们程序当中找到处理订单的processOrder方法,我们要在更新订单状态和记录日志之前,先处理重复通知
|
3月前
|
小程序 API
技术心得记录:微信小程序之图片频繁变化,几秒之后输出结果(适用于抽奖)
技术心得记录:微信小程序之图片频繁变化,几秒之后输出结果(适用于抽奖)
23 0
|
11月前
|
缓存 小程序 JavaScript
云开发小程序倒计时防刷新功能及签到功能
云开发小程序倒计时防刷新功能及签到功能
45 0
|
存储 前端开发 BI
九宫格抽奖系统源码开发功能规则实例解析
九宫格抽奖系统源码开发功能规则实例解析
uniapp写一个随时间变化的预约日期列表
const today = new Date(); const dateArray = []; const dayOfWeekArray = []; const yearMonthDayArray = [];
80 0
用python实现网站自动签到
用python实现网站自动签到
|
存储 NoSQL Java
【Java项目】如何设计一个用户签到系统?并且这个签到系统支持7天,14天等不同天数的连续签到功能?
【Java项目】如何设计一个用户签到系统?并且这个签到系统支持7天,14天等不同天数的连续签到功能?
325 0
|
程序员 测试技术 数据库
实战! 项目单据确认状态未更新排查
实战! 项目单据确认状态未更新排查