作为一个服务型产品,我们使用了兔小巢来获取用户的反馈信息,并与用户进行互动。为了尽快的回复用户,或者不至于忘记回复用户,我们要知道有用户在兔小巢上面发布了帖子。
兔小巢提供了消息通知的 Webhook,当有用户反馈时,会触发 Webhook 推送消息。
有了 Webhook 后,可以直接把消息通过机器人发送到企业微信中。当然,在发送前,需要做一些格式上的转换,需要转换为企业微信机器人所能接受的格式。这时,可以使用云函数快速的解决这个问题。
具体思路是:创建一个云函数,接受兔小巢的 Webhook 调用,并把收到的消息转换好格式,再发送给企业微信机器人。具体的云函数代码代码如下:
const request = require("request");
// 兔小巢产品 ID
const productId = "140000";
// 企业微信企业人的调用地址
const botUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxx";
exports.main = async (event, context) => {
const txcData = JSON.parse(event.body);
// 新的反馈帖子
if (txcData.type == "post.created") {
const res = await new Promise((resolve, reject) => {
request(
{
uri: botUrl,
method: "POST",
body: JSON.stringify({
msgtype: "markdown",
markdown: {
content: `**新增用户反馈**\n\n${txcData.payload.post.content}\n\n[点击查看详情](https://support.qq.com/products/${productId}/post/${txcData.payload.post.id})`,
},
}),
},
function (e, res, body) {
if (e) return reject(e);
try {
resolve(body);
} catch (e) {
reject(e);
}
}
);
});
console.log("res", res);
}
return "ok";
};
这里只是简单的介绍一下主要的思路与过程,详细的操作过程可以参考这篇文章。