为你的兔小巢加上实时消息推送

如果你也和我一样,使用[兔小巢][1]来作为你的产品用户社区,那么你一定会遇到一个问题:反馈不及时,由于兔小巢本身没有和用户的强关联,只有当用户主动填写了个人信息,或关注了兔小巢的服务通知,你才能对用户进行消息的触达。因此,你的回复的时效就十分重要了,快速的回复可以让你的用户在还没有失去和你的联系时获得反馈,完成一次有效的用户交流。因此,实时的信息反馈就十分重要了。

但是,兔小巢本身并不具备实时推送问答的能力,因此,我们需要借助一些第三方工具来完成自己的目的,在这篇文章中,我将向你介绍,如何使用腾讯云云函数将兔小巢的消息转发到企业微信当中。当然,如果你使用的聊天工具不是企业微信,而是诸如飞书、Slack、Bearychat,你也可以参考这里的说明,完成自己的相应的需求的实现。

需求

  1. 腾讯云账号
  2. 兔小巢

流程说明

这里使用兔小巢的提供的 WebHook ,来接管所有的用户请求,并辅以腾讯云的 API 网关和云函数的能力,将实时推送的消息转发至企业微信

这里我实现了企业微信,但对于你来说,还可以用来实现其他同类似渠道的能力。

优势

  • 轻量:如果你的需求仅仅是实时转发,那你不再需要重新启动一个项目,配置各种环境,通过云函数就可以完成这些工作。
  • 无需代码基础:如果你是一个运营,而不是一个开发,那么我这段代码你复制即可,简单修改其中的一些基本信息,就可以完成实时推送的功能,对于没有代码基础的同学来说,是十分方便的。

操作步骤

由于这篇文章是兔小巢的高级用法,因此,对于如何创建一个兔小巢产品,就不再赘述,此外,以下步骤均在电脑端操作,因此,请使用电脑来执行下述流程。

找到你的兔小巢产品 ID

首先,你需要打开兔小巢的管理后台,打开产品设置 ,在其中找到 产品 ID,复制这里的产品 ID,后续我们会用到。

产品 ID

创建一个企业微信机器人

由于我们本次要实现的是兔小巢消息推送到企业微信,因此,我们需要创建一个企业微信机器人。

在你需要推送消息的群上,右击,选择其中的添加群机器人

并在弹出的窗口中选择从新创建一个机器人

在新弹出的窗口中输入机器人的基本信息,并点击添加

添加完成后你会获得一个 WebHook 地址,复制这个地址,后续会用到

创建一个腾讯云云函数

访问腾讯云云函数控制台,点击界面中的新建,新建一个云函数。

这里函数的地域可以根据你的需要选择,几乎没有影响,我选择的是广州地域。

随后,在新建函数的时候,输入函数名称、运行环境(运行环境选择 Node.js 8.9),以及创建方式,选择空白函数。

填写完成后,点击下一步,在新的页面,设置函数的描述,这里需要注意,执行方法不要做任何修改,使用默认的,除非你知道你在干什么。

然后,复制这段代码,粘贴在下方的代码框中,操作步骤参考动图

'use strict';
const request = require("request")
const productId = ""
const botUrl = ""
function requestPromise(r,t){return new Promise(function(e,n){request({uri:r,method:"POST",body:JSON.stringify(t)},function(r,t,i){if(r)return n(r);try{e(i)}catch(r){n(r)}})})}
exports.main_handler = async (event, context, callback) => {
    const txcData = JSON.parse(event.body);
    if (txcData.type == "post.created") {
        await requestPromise(botUrl, {
            "msgtype": "markdown",
            "markdown": {
                "content": `**新增用户反馈**\n\n${txcData.payload.post.content}\n\n[点击查看详情](https://support.qq.com/products/${productId}/post/${txcData.payload.post.id})`
            }
        })
    }
    return "ok"
};

然后,将第三行的 productId 中加入你的兔小巢产品 ID,将第四行的 botUrl 中加入你的微信机器人地址。
比如,我的修改完是这样的

'use strict';
const request = require("request")
const productId = "149567"
const botUrl = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=d8c1e6b1-ccbf-467e-8dcc-31c1961baf41"

这里需要注意,不要删除放好的引号,把 ID 和 WebHook URL 放在引号内部就好,以免你的输入法输入了中文引号导致出错。

修改完成后,保存文件(按下 Ctrl + S 或 Command + S),点击下方的 完成,进入到函数的详情页。

配置函数请求地址

接下来,我们为函数生成一个请求地址,用作后续兔小巢的消息提醒。

在函数的详情页,点击左侧的触发管理,选择创建触发器,创建一个 API 网关触发器

触发器的具体配置可以参考下方的图片。

创建成功后,你会获得一个访问路径,这个路径就是你的函数请求地址了。复制这个地址,下一步我们就会用到。

兔小巢后台设置 Webhook

回到兔小巢的后台,找到左侧菜单栏中的 开发新反馈实时通知

将刚刚你生成的函数的访问地址,粘贴在这里,点击保存并发布

保存成功后,就可以去你的兔小巢中发反馈,测试一下效果啦

测试效果

当我在兔小巢社区发了一个新的反馈后,我的企业微信群内就出现了一个新的消息提醒,提醒我有了新的反馈,同时,还带上了一个链接。点击这个链接,就可以跳转到我的兔小巢对应的反馈页面,方便快速回复。

总结

通过简单的配置,我们就可以很轻松的实现兔小巢反馈的实时推送,十分的方便。对于广大使用兔小巢的运营同学来说,现在你可以不用每隔几分钟就去刷新一下社区了,耐心的等待机器人的推送就好了~工作效率大大的得到的了提升。

为你的兔小巢加上实时消息推送》有6个想法

  1. 肥羊

    会出现一个新反馈,多次重复推送到企业微信的情况
    请问是不是和下面这个有关
    注意:接受webhooks内容成功后,请尽快返回200状态码,否则将视为推送失败。推送失败的webhooks将会重入队列推送,累计7次推送重试。

    回复

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注