首页 > 其他分享 >用云函数开发掘金钉钉机器人

用云函数开发掘金钉钉机器人

时间:2022-12-27 18:07:22浏览次数:43  
标签:info 机器人 const cn 用云 https message 掘金 data

前言

前段时间看了 B 站 UP 主@​​人工智能小黄鸭​​的出的视频,可以利用飞书机器人在线刷题,非常牛逼,行云流水。自从我在稀土掘金社区技术更文以来,每天非常关注文章点赞评论消息,而我常使用的是聊天软件是钉钉,所以我在想,是否可以利用云函数对接掘金,实现一个钉钉机器人,把我的掘金消息自动推送给我。

实现功能

  • 自动签到和抽奖
  • 掘金消息提醒

申请钉钉机器人

新建一个只有你自己的个人群

用云函数开发掘金钉钉机器人_Serverless

点击群助手创建一个自定义的 ​​webhook​

用云函数开发掘金钉钉机器人_ios_02

安全设置选择自定义关键词,输入掘金消息

用云函数开发掘金钉钉机器人_2d_03

复制 ​​webhook​​ 地址,等会在云函数中使用。

免费的云开发平台

用云函数开发掘金钉钉机器人_Serverless_04

云函数我推荐 ​​lafyun​​,laf 是一个开源云开发平台,可以像写博客一样写函数,随手上线,最重要的是官网体验版现在是免费的,laf 目前只支持 Node.js 运行环境,当前大家可以选择其他云开发平台。

云函数自动签到

​​钉钉机器人文档地址​​

在 laf 平台注册后,新建云函数输入以下代码

"use strict";
const axios = require("axios");
// 请求签到、抽奖的接口
const checkInApi = "https://api.juejin.cn/growth_api/v1/check_in";
const drawApi = "https://api.juejin.cn/growth_api/v1/lottery/draw";
// 钉钉机器人 Webhook
const dingtalk_robot_url =
"https://oapi.dingtalk.com/robot/send?access_token=a5abc0f85c385aabd922dbe9a2d42741a2f8bd8634b8bc543e7193ae7012120b";
// 请求接口的cookie配置
const cookieInfo = "掘金cookie";
// 请求签到接口
const checkIn = async () => {
let { data } = await axios({
url: checkInApi,
method: "post",
headers: { Cookie: cookieInfo },
});
return data;
};
// 请求抽奖接口
const draw = async () => {
let { data } = await axios({
url: drawApi,
method: "post",
headers: { Cookie: cookieInfo },
});
return data;
};
// 签到完成 发送钉钉
const sendDingDing = async (md) => {
const sendMessage = {
msgtype: "markdown",
markdown: {
title: "掘金消息",
text: md,
},
at: {
atMobiles: [],
atUserIds: [],
isAtAll: false,
},
};
return await axios.post(dingtalk_robot_url, sendMessage);
};

exports.main = async function (ctx: FunctionContext) {
// body, query 为请求参数, auth 是授权对象
const { auth, body, query } = ctx;
const checkInData = await checkIn();
if (checkInData.data) {
sendDingDing(
`掘金签到成功!\n 今日获得${checkInData.data.incr_point}矿石,\n 当前总矿石:${checkInData.data.sum_point}。`
);
} else {
sendDingDing(`掘金签到失败,\n ${JSON.stringify(checkInData)}。\n`);
}
const drawData = await draw();
if (drawData.data) {
sendDingDing(`掘金抽奖成功!\n 获得:${drawData.data.lottery_name}`);
} else {
sendDingDing(`掘金抽奖失败,\n ${JSON.stringify(drawData)}`);
}
console.log("

标签:info,机器人,const,cn,用云,https,message,掘金,data
From: https://blog.51cto.com/u_15757429/5973083

相关文章