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這個變量是從哪里獲取。
- 在網頁登錄你的掘金賬號;
- 打開簽到頁面(如果沒簽到,就點擊簽到);
- 打開控制臺,切換到網絡選項卡,找到/check_in_rules這個接口,然后把后面的字符串(以aid=開頭)復制保存。
- 然后把剛才保存的字符串拼接到https://api.juejin.cn/growth_api/v1/check_in?后面。
例:https://api.juejin.cn/growth_api/v1/check_in?aid=?&uuid=?&_signature=?
以后,你就不用每次都進行上面這些操作了,只需一次。
然后,我們接著看下sessionid這個變量是從何而來的。
- 同樣,我們打開控制臺;
- 切換到應用選項卡下,找到Cookie選項,點擊https://juejin.cn;
- 找到sessionid名稱,復制對應值即可。
因為Cookie有時間期限,但是一般都幾個月左右,夠用的了。過期了,重新替換下即可。
結語
有云服務器的小伙伴,你可以使用pm2持久運行Node應用。
本文轉載自微信公眾號「前端歷劫之路」,可以通過以下二維碼關注。轉載本文請聯系前端歷劫之路公眾號。