掘金自动签到+微信推送

759 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第4天,点击查看活动详情

前言

前两天翻到了这篇文章 🎉 几行代码实现掘金自动签到+微信推送 再也不怕漏签了,于是我怀着好奇的心态准备自己试一试。

开始

按照文章中的步骤一步一步操作,总共花了不到二十分钟就搞定了,第一次弄云函数nodejs这种东西,搞起来速度还这么快我是没想到的,反正轻松加愉快就弄好了,试了一下,成功了。

image.png

点开卡片后查看详情,这是重复签到后返回的信息

image.png

在腾讯云函数触发器定的是每天9:30执行,这个就是第二天09:30自动签后的结果

image.png

可是当我看到这个大大的推送广告后心里就很不舒服,觉得膈应。所以就想着能不能用别的办法替代一下。

server酱

在找了一番之后我发现了这个 “server酱” ,是一款「手机」和「服务器」、「智能设备」之间的通信软件。 说人话?就是从服务器、路由器等设备上推消息到手机的工具。

image.png

找到了完美的替代品后,先扫码关注,可以测试发消息先试试。 image.png

准备工作完毕后,cv战士开始发动技能,按照提示,拿到sendkey,直接修改推送的url及参数就可以了。然后提交 => 部署 => 测试,就好了,是不是很简单。这真的就是有手就行。

image.png

代码

app.js代码如下

const got = require('got')
const { cookie, aid, uuid, _signature, PUSH_PLUS_TOKEN } = require('./config')
const BASEURL = 'https://api.juejin.cn/growth_api/v1/check_in' // 掘金签到api
const PUSH_URL = 'http://www.pushplus.plus/send' // pushplus 推送api
const FT_URL = 'https://sctapi.ftqq.com/SCT154816TYnQT17XOQ5EeVKzIgRo8gWnt.send?title=掘金自动签到通知&desp='//serve酱通知
const URL = `${BASEURL}?aid=${aid}&uuid=${uuid}&_signature=${_signature}`
const DRAW_URL = `https://api.juejin.cn/growth_api/v1/lottery/draw?aid=${aid}&uuid=${uuid}&_signature=${_signature}`
const HEADERS = {
  cookie,
  'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 Edg/92.0.902.67'
}
// 签到
async function signIn () {
  const res = await got.post(URL, {
    hooks: {
      beforeRequest: [
        options => {
          Object.assign(options.headers, HEADERS)
        }
      ]
    }
  })
  console.log(res.body)
  draw()
  if (!PUSH_PLUS_TOKEN) return
  handlePush(res.body)
}
async function draw () {
  const res = await got.post(DRAW_URL, {
    hooks: {
      beforeRequest: [
        options => {
          Object.assign(options.headers, HEADERS)
        }
      ]
    }
  })
  console.log(res.body)
}
// push
async function handlePush (desp) {
  let message = JSON.parse(desp)
  let sendinfo = ''
  if(message.err_no===0){
    sendinfo = '**签到成功!** <br /> 新增:' + message.data.incr_point + '矿石 <br /> 共计:' + message.data.sum_point + '矿石'
  }else{
    sendinfo = message.err_msg
  }
  const res = await got.post(FT_URL+sendinfo)
  console.log(res.body)
}
signIn()

image.png