让工作更加轻松——用云函数开发掘金钉钉机器人
2023-09-13 11:28:27
自从我加入掘金以来,每天我都会花时间阅读技术文章和在掘金上分享自己的心得体会,我常常需要查看文章点赞和评论消息,而我常用的是钉钉聊天软件,因此,我萌生了这样一个想法:是否能够借助云函数的力量来对接掘金,创建一个钉钉机器人,以便可以自动把我的掘金消息推送到钉钉上呢?
关于钉钉
钉钉是一个商务沟通和协作平台,能够帮助企业员工进行信息分享、文件存储、任务管理、视频会议等,广泛应用于多个行业和组织。钉钉机器人是一个基于钉钉平台的自动消息推送工具,能够帮助开发者方便地将各类信息和服务与钉钉进行无缝集成,提高工作效率和协作能力。
关于掘金
掘金是一个技术内容分享社区,它是一个非常活跃的开发者社区,每天都有大量技术文章、问答和项目分享。作为掘金的一名创作者,我会定期发表技术文章并与社区成员互动,而这些文章的点赞和评论情况,我十分重视。
开发掘金钉钉机器人
现在让我们开始开发掘金钉钉机器人。首先,我们需要一个云函数来处理掘金消息的推送,并将其发送到钉钉机器人。
1. 创建云函数
可以使用云函数控制台、命令行工具或 IDE 来创建云函数。这里我们使用云函数控制台来创建云函数。
- 登录云函数控制台。
- 点击 "新建函数" 按钮。
- 选择触发方式为 "HTTP",函数类型为 "Node.js 16"。
- 输入函数名称,例如 "掘金消息推送"。
- 点击 "创建" 按钮。
2. 编写云函数代码
在函数代码编辑器中,复制并粘贴以下代码:
const axios = require('axios');
const crypto = require('crypto');
exports.掘金消息推送 = async (req, res) => {
// 获取请求体
const body = req.body;
// 验证请求合法性
const signature = req.headers['x-hub-signature'];
const computedSignature = `sha256=${crypto.createHmac('sha256', process.env.掘金_SECRET).update(JSON.stringify(body)).digest('hex')}`;
if (signature !== computedSignature) {
res.status(400).send('Invalid signature');
return;
}
// 解析掘金消息
const eventType = body.type;
const data = body.data;
// 根据事件类型处理消息
switch (eventType) {
case 'vote':
// 处理文章点赞
const articleTitle = data.title;
const articleUrl = data.url;
const likerName = data.user.name;
// 发送钉钉消息
await sendDingTalkMessage(`文章《${articleTitle}》收到一个来自${likerName}的点赞!`, articleUrl);
break;
case 'comment':
// 处理文章评论
const articleTitle = data.title;
const articleUrl = data.url;
const commenterName = data.user.name;
const commentContent = data.content;
// 发送钉钉消息
await sendDingTalkMessage(`文章《${articleTitle}》收到一条来自${commenterName}的评论:\n${commentContent}`, articleUrl);
break;
default:
// 其他事件类型,不做处理
break;
}
res.sendStatus(200);
};
// 发送钉钉消息
const sendDingTalkMessage = async (message, url) => {
// 获取钉钉机器人 webhook
const webhookUrl = process.env.钉钉_WEBHOOK_URL;
// 构建钉钉消息体
const messageBody = {
msgtype: 'link',
link: {
text: message,
title: '掘金消息推送',
picUrl: '',
messageUrl: url,
},
};
// 发送钉钉消息
await axios.post(webhookUrl, messageBody);
};
3. 部署云函数
点击 "部署" 按钮,将云函数代码部署到服务器上。
4. 配置掘金 webhook
登录掘金,找到 "个人中心" -> "消息通知",在 "webhook 管理" 部分,点击 "添加 webhook" 按钮。
- 在 "名称" 字段中,输入一个名称,例如 "掘金钉钉机器人 webhook"。
- 在 "URL" 字段中,输入您云函数的 URL。例如:
https://<your-region>.functions.cloud.google.com/<your-function-name>
。 - 在 "事件类型" 部分,选择您想要接收的事件类型,例如 "点赞" 和 "评论"。
- 点击 "保存" 按钮。
5. 测试掘金钉钉机器人
在掘金上发布一篇文章或评论,然后查看您的钉钉是否收到推送消息。
结语
通过使用云函数,我们可以轻松地将掘金消息推送至钉钉,这样我们就可以及时了解文章点赞和评论情况,及时与社区成员互动,从而提高工作效率和协作能力。希望本教程对您有所帮助,祝您开发愉快!