前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【玩转腾讯云】云函数定时帮我跟HR打招呼

【玩转腾讯云】云函数定时帮我跟HR打招呼

原创
作者头像
治电小白菜
修改2021-05-07 10:18:07
1.3K0
修改2021-05-07 10:18:07
举报
文章被收录于专栏:技术综合

最近看很多人跑路, 所以就想着造福自己, 想去自动的在某招聘软件中跟HR打招呼, 由于买个服务器来单独配个corntab确实有点浪费, 所以就选择了云函数, 毕竟云函数的免费额度够用了

所以, 开始吧

1. 脚本编写

我使用的是NodeJS进行编写, 总共文件分为三个

  • common.js 存放公共的头部参数, 和公共方法
  • request.js 用于请求接口
  • index.js 用于云函数的触发器配置运行的文件

代码都没啥, 就是带参数请求接口

公共参数, 主要是配置请求的header

代码语言:txt
复制
const headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501 NetType/WIFI MiniProgramEnv/Windows WindowsWechat',
  'content-type': 'application/x-www-form-urlencoded',
  mpt: '',
  platform: '',
  scene: '',
  ua: '{"model":"microsoft"}',
  v: '',
  ver: '',
  wt2: '',
  zpAppId: '',
  Referer: '',
  'Accept-Encoding': 'gzip, deflate, br'
}

function sleep (delay) {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve()
    }, delay)
  })
}

exports.headers = headers

exports.sleep = sleep

接口请求, 主要就是先获取指定城市的岗位列表, 然后挨个打招呼

代码语言:txt
复制
const got = require('got')
const fs = require('fs')
const { headers, sleep } = require('./common')

function getJobList(page = 1) {
  return got('', {
    method: 'GET',
    headers,
    searchParams: {
      appId: 10002,
      expectId: 185008765,
      sortType: 1,
      cityCode: 101020100,
      districtCode: '',
      businessCode: '',
      subwayLineId: '',
      subwayStationId: '',
      page: page,
      pageSize: 10,
      salary: '',
      degree: '',
      experience: '',
      stage: '',
      scale: '',
      industry: '',
      longitude: '',
      latitude: '',
      positionCode: ''
    }
  })
}

function addJob(jobId, lid, securityId) {
  const body = {
    appId: '',
    jobId: jobId,
    lid: lid,
    securityId: securityId
  }
  return got('', {
    method: 'POST',
    headers,
    body: new URLSearchParams(body).toString()
  }).then(res => {
    console.log(res.body)
    return res
  })
}

async function main () {
  try {
    let jobList = []
    for (let i = 1;;i++) {
      const res = await getJobList(i)
      const data = JSON.parse(res.body)
      jobList.push(...data.zpData.jobList)
      if (!data.zpData.hasMore) {
        break
      }
    }
    const asyncArr = []
    jobList.forEach(async job => {
      console.log(job.jobName)
      asyncArr.push(addJob(job.encryptJobId, job.lid, job.securityId))
    })
    Promise.all(asyncArr)
  } catch (error) {
    console.log(error)
  }
}

main()

然后就是获取触发器中附加信息的主函数, 通过获取附加信息中写的文件名, 来调用指定文件, 因为我还有发简历的文件, 所以要区分下

代码语言:txt
复制
'use strict';
exports.main_handler = async (event, context, callback) => {
  for (const v of event["Message"].split("\r\n")) {
    console.log(v);
    require(`./${v}.js`)
  }
}

2. 创建云函数

直接首页搜索云函数

image.png
image.png

进入控制台

image.png
image.png

创建云函数, 创建方式选择自定义创建, 运行环境选择NodeJS, 函数代码我们直接选择上传文件夹, 方便快捷啊, 把我们的代码文件夹直接选中上传即可

image.png
image.png

注意下, 这里的超时时间可以设置长一点, 毕竟是接口请求, 还是得花点时间的, 设少了, 还没请求完成, 就给断了

image.png
image.png

接下来, 配置触发器, 选择定时触发, 我们可以选择它写死的一些时间点, 例如每一分钟, 每一天等, 也可以使用自定义触发周期, 自己配置cron表达式, 例如每天晚上九点就是0 0 9 * * * *

最后, 附加信息选择, 然后写我们要跑的文件名, 即request

image.png
image.png
image.png
image.png

点击完成即可创建云函数

随后我们可以在列表中, 查看到我们的云函数, 进入详情, 也可以修改代码并部署

3. 效果啊

image.png
image.png
image.png
image.png

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 脚本编写
  • 2. 创建云函数
  • 3. 效果啊
相关产品与服务
云函数
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,帮助您在无需购买和管理服务器的情况下运行代码。您只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。云函数是实时文件处理和数据处理等场景下理想的计算平台。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档