推送 leetcode 每日一题到企业微信

15 篇文章 0 订阅

当初说过的刷题你刷了吗?LeetCode 的网页估计都没打开过吧?选择躺平了?不!我要让你卷起来。

最近倒腾了下 云函数,发现腾讯云每个月都有 5w 的免费额度,对于自己使用完全足够,然后在 云函数 中加入触发 企微 机器人的逻辑,这样就可以达到 企微 群通知的目的。
所以,基于这个思路,我在 企微 中加入了获取 LeetCode 每日一题的逻辑,然后将题目的详情内容通过 企微 的 webhook 地址来通知群机器人,云函数还可以加 定时触发,可以设置每天什么时候触发函数通过机器人,所以,我选择了上午 9 点和晚上 9 点来通知,为了更好的明天,可千万不要忘了刷题!

下面会大致讲解下操作流程,代码部分不会讲,可以直接用我开源的代码复制粘贴进去即可,但需要替换一下你自己 企微 机器人的 webhook 地址

一、创建云函数

先给下几个地址:

这里我选择的是用 Node.js 来开发云函数,选择它并不是因为我会,而是他可以在线依赖安装,省去了不少本地上传依赖的烦恼,再加上 js 这种弱语言,写起来可爽了,只要知道思路,就 google 这个 api 怎么写,拼拼凑凑就写出来了。

我们先进入云函数控制台,创建个 云函数
image.png
点击 新建 进入 云函数 的创建流程:
image.png

我们选择 从头开始这个模板,填入函数名称为 leetcode,运行环境选择 Nodejs 16.13 版本,然后点 完成 进入 云函数 管理页面:

image.png

红色框框区域就是云函数编辑逻辑代码的区域,函数中的代码是模板 demo:

image.png

我们可以点击 部署并测试 来验证 云函数 的执行逻辑,执行过程和结果可以在 执行摘要执行日志 中进行查看

二、云函数开发

由于要开发 leetcode 逻辑,所以,搜了下可有现成的接口,正好被我搜到一篇 《Leetcode爬虫实践》的文章,并且 每日一题题目详情免登陆就可以通过请求拿到结果,非常符合我们的需要,这里不贴开发代码了,讲下一下开发过程中遇到的注意点:

1、云函数 给的实例代码是同步代码,对于网络请求这种异步任务,函数的返回要写成异步的,也就是写成 callback 这种回调,云函数文档也给出了说明 https://cloud.tencent.com/document/product/583/67790

2、在线依赖安装 需要自己手动配置 package.json 文件,这里我加了 requestturndown 两个依赖,一个是请求接口使用,一个是将 html 内容转成 markown 内容(企微不支持 html 内容,但支持 markdown),指导过程如下:
image.png
依赖内容:

{
      "dependencies": {
      "request" : "2.81.0",
      "turndown": "7.1.1"
    }
}

注:这一块必须配置,不然,云函数的执行会报找不到函数

3、企微不支持 html 格式的内容,所以这里使用了 turndown 库来将 html 转成 markdown 格式来内容推送,但由于 企微 的 markdown 又不支持图片的展示,真蛋疼,所以,用了迂回的方式,将图片 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5cV9eITH-1647135731429)()] 格式,可以通过点击链接来查看内容 ,效果如下:
image.png

三、创建机器人

企微群里面选择 添加机器人
image.png
然后选择 新建一个机器人
image.png
输入机器人的名称,然后点击 添加机器人
image.png
我们点击 复制地址,复制下我们机器人的 webhook 地址。

四、导入函数代码

leetcode 代码仓库链接在 https://github.com/MRwangqi/tencent-function,我们将 leetcode.js 的代码直接拷贝进云函数中:
image.png
这个地方需要粘贴进我们企微的机器人的 webhook 地址,然后点击 部署并测试 即可看到企微收到了一条机器人的通知,效果如下:
image.png

五、定时触发

选择 触发管理创建触发器
image.png

由于其他几个触发周期都太死板,我们这里选择自定义触发周期:
image.png

输入 Cron 表达式 0 0 9 */1 * * *,该表达式的意思是:每天 9 点触发
image.png
点击提交即可

六、总结

这下再也不用怕没人喊你刷题了,为了让你们卷起来,我操碎了心!

再贴一下源码地址:https://github.com/MRwangqi/tencent-function

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值