如何为阿里云论坛建设一个新帖提醒系统

系统架构

如何为阿里云论坛建设一个新帖提醒系统

系统设计思路

IFTTT 为我们提供了方便的 RSS 更新检查功能,可以让我们免于开发,监控站点信息。同时,钉钉提供的机器人功能,可以让我们很方便的实现后续的消息提醒功能。

如何操作?

创建 Applets

首先,你需要到 IFTTT 注册一个账号,

如何为阿里云论坛建设一个新帖提醒系统

注册成功后,点击 My Applets,进入到个人脚本页面。

如何为阿里云论坛建设一个新帖提醒系统

点击右侧的 New Applet,创建新的脚本。

创建触发器

首先,我们需要点击 This,来设置脚本的触发器(Trigger),

如何为阿里云论坛建设一个新帖提醒系统

在新的页面中,中部有一个用于快速搜索的输入框,在其中输入关键词 「Feed」,然后可以看到下方筛选出的两个服务,选择其中的 「RSS Feed」。

如何为阿里云论坛建设一个新帖提醒系统

点击后,会进入到具体的触发器选择界面。左侧的「New Feed Item」是只要有新的条目(新的帖子)就会触发,右侧的「New Feed Item Matches」则是有新的条目(新的帖子),同时匹配到对应的关键词,才会触发,可以用于某些关键词的特殊监控(比如某些消极词汇)。

如何为阿里云论坛建设一个新帖提醒系统

我们使用左侧的「New Feed Item」 来设置监控(因为我们是以全站消息为例的,并非监控某个关键词)。

右侧的触发器和左侧的基本一致,仅仅是多了一个关键词的设置项。

在新的页面中,输入 产品板块对应的 RSS 的地址

如何找到对应的 RSS 地址?

对于每个产品的团队来说,需要的是自己板块的信息监控,那么,你就无法使用全站的 RSS 监控,这里我们可以使用各个板块自己的监控地址。

这里我们以 「云服务器 ECS」为例,进入阿里云论坛,找到对应的板块,并点击进去

如何为阿里云论坛建设一个新帖提醒系统

在板块顶部的介绍部分的右侧,你可以看到一个「订阅

如何为阿里云论坛建设一个新帖提醒系统

点击「订阅」,会进入到 RSS 信息页面。

如何为阿里云论坛建设一个新帖提醒系统

复制地址栏中的地址,并进行简单的处理(删除其中的 SPM 部分),就可以作为我们监控用的 RSS 地址了。

地址处理方法

去除请求中的 SPM 参数,如

https://bbs.aliyun.com/rss.php?spm=5176.bbsl207.0.0.jPzBUj&fid=207

经过处理后的地址是

https://bbs.aliyun.com/rss.php?fid=207

我们去除了其中的 「spm=5176.bbsl207.0.0.jPzBUj&

这个参数是用来判别机器人的,不过我们是 RSS 监控,仅仅是读取操作,所以可以删除这个参数。不删除理论上也是可行的。

获取到我们的 RSS 地址后,就可以继续设置我们的触发器了。在触发器中填写我们刚刚处理后的 RSS 地址。

如何为阿里云论坛建设一个新帖提醒系统

填写完成后,点击 Create Trigger.

设置机器人

确认后,我们会进入到设置动作的界面,点击 That

如何为阿里云论坛建设一个新帖提醒系统在新的页面中,参照刚刚的设置,输入关键词「Web」,然后选择 WebHooks 服务。

如何为阿里云论坛建设一个新帖提醒系统

在选择触发器界面,选择 「Make a web Request」。

如何为阿里云论坛建设一个新帖提醒系统

会进入新的界面,在这个界面,我们可以设置请求的具体内容,用于向钉钉机器人发送请求。

不过,在设置项目之前,我们需要先在「钉钉群」内创建机器人。

不是钉钉群无法加入机器人发送消息,所以你需要至少三个人来拉群。拉完群后,你可以把无关人等踢出去。

在钉钉群内,点击右上角的「群设置

如何为阿里云论坛建设一个新帖提醒系统

点击群设置中的「群机器人

如何为阿里云论坛建设一个新帖提醒系统

添加一个「自定义机器人

如何为阿里云论坛建设一个新帖提醒系统

点击「添加

如何为阿里云论坛建设一个新帖提醒系统

简单设置一下机器人,点击下一步。

如何为阿里云论坛建设一个新帖提醒系统

在新的页面,你会看到一个「WebHook」 地址,复制这个地址。稍后我们会用到。

如何为阿里云论坛建设一个新帖提醒系统

回到 IFTTT 的设置页面,继续我们刚刚未完成的设置。

将我们复制的 WebHook 地址,粘贴到其中的「URL」,下方的 Method 选择 「POST」,ContentType 选择 「application/json」。

如何为阿里云论坛建设一个新帖提醒系统

如何为阿里云论坛建设一个新帖提醒系统

下方的 Body 则设置为

{ 
  "msgtype": "link", 
  "link": { "text": " {{EntryTitle}}", 
           "title": " {{EntryTitle}}", 
           "picUrl": " {{EntryImageUrl}}", 
           "messageUrl": " {{EntryUrl}}" 
          } 
}

上述代码可以实现如下效果。如果你有自定义的需求,可以根据上方的代码和钉钉机器人的设置文档进行自定义。

如何为阿里云论坛建设一个新帖提醒系统

设置完成后,点击「Create Action」来创建对应动作。

在弹出的设置页面中,设置好对应的脚本名称,然后取消下方的 Receive notificati ons when this Applet runs 的选中(不取消而同时你安装了对应的 App ,可能会很吵)。

如何为阿里云论坛建设一个新帖提醒系统

最后,点击 Finish ,即可完成设置,后续,当论坛发出新帖后,机器人就会在群里发送通知的提醒。

由于 RSS 存在缓存和 IFTTT 监控频率的问题,所以消息通知可能不是实时的,不过时间间隔在15分钟以内,基本可以快速响应。

上一篇:【说云精选】对象存储专刊 第一期


下一篇:求三角形的面积