某天发现自家公司的负面新闻被放上了热搜,然后中午开始,公关似乎无动于衷。到了饭点,「友军」看到本司毫无反应,又爆了一个本司的沙雕广告出来。自此热搜就一直往上冲榜,被连环锤爆。一直到了晚上,才慢慢被撤掉热搜,悄无声息地结束一场闹剧。
于是我不禁在想,有没有方法可以比较快地检测到社交媒体的舆情,且信息是关于特定关键词的,就有了这一篇文章。
根据文章的实现,会在关于关键词「比特币」有新消息时,自动推送到企业微信中,效果如图:
Google Alerts:用于采集社交舆情,并产生 RSS 订阅源;
IFTTT:用于采集 RSS 订阅源,并实时推送到用户端;
企业软件(企业微信/钉钉):用于作为客户端,接收舆情信息,且高可用的架构,便于快速传达到用户眼前。
只要设定了关键词,如我举例的「比特币」,就会看到对应的检索资讯出现在下方,这些也就是之后有更新就会推动到你企业微信上的信息。
更进一步,点击「显示选项」,有更多的配置项目可以选择,比如舆情信息的「来源渠道」、「语言」、「国家/地区」以及「推送频率、数量」等。
推送的目的地,可以选择发送到邮箱或者 RSS Feed,我们后续选择推送到企业微信,就是通过 RSS Feed 来实现的。
最后,选择「创建快讯」即可。
如果选择推送到 RSS Feed,会有对应的 RSS icon,点击 icon 后跳转的地址,即为该快讯的 RSS Feed 地址(后面简称 RSS URL
),需要先记录起来,后续备用。
企业微信 Webhook 官方介绍: 如何使用群机器人
把相关的人士拉入群中,即可组成一个群聊。注意包含「外部联系人」的话,不能创建机器人,也就不能实现上述功能。
如果想创建单人群聊,没有钉钉的面对面建群的便捷功能,需要先把人拉进来,然后 T 掉,即可实现单人群聊。
在群聊的设置界面中,添加机器人。
生成机器人成功后,会获取到一个 Webhook 地址,请记住这个地址。(以后我们简称 {WebhookUrl}
)
可以理解为,访问这个 Webhook 地址并以某种方式携带我们需要传递的内容,就能够把我们要传递的内容,推送到企业微信中。
现在来举一个例子,我们要推送「Hello World」到上面创建的群聊里。
请你在命令行中粘贴一下代码,并回车执行。
请注意,以下的 {WebhookUrl}
请用你在上一步创建的机器人 Webhook Url 去替换。
curl '{WebhookUrl}' \ -H 'Content-Type: application/json' \ -d ' { 'msgtype': 'text', 'text': { 'content': 'hello world' } }'
正常运作的话,你会在群聊里收到 Bot 给你推送的 「hello world」信息。
想了解更多推送的格式和样式(如截图中出现的其他推送,使用了 Markdown 形式),可以查看官方文档:如何使用群机器人
IFTTT 是一个自动化网络服务,通过条件来决定是否执行下一条命令。简单来说,当你触发了一件事,IFTTT 则执行设定好的另一件事。
进入新建页面,新建一个任务(Applet),实际上新建任务需要「if this(触发器) then that(响应器)」,即配置一个触发器和一个响应器即可。那么我们的需求,就是配置「RSS 舆情新闻源有新消息」为触发器,然后触发「通过 Webhook 发送消息到企业微信」的响应器。
搜索名为「RSS Feed」的触发器,选择「New Feed Item」动作,填入第一部中我们通过 Google Alerts 生成的舆情信息的 RSS URL
,即创建完成。
配置好了 RSS Feed 作为触发器,现在配置响应器。即有新的消息来了,需要发起 Webhook 推送到企业微信中。
搜索名为「Webhooks」的触发器,选择「Make a web request」动作。
配置数据:
Url
为填入第二部中生成的企业微信机器人的 Webhook Url
地址;
Method
为 Post;
ContentType
为 application/json。
Body
为第二步中我们说的推送内容,这里我提供一个 Markdown 模版。其中打{{context}}
的意思是,我们从触发器(RSS Feed)中能获取的信息,比如 EntryTitle 为新消息的标题, EntryUrl 为新消息的来源页面等等,可以自行搭配。
{ 'msgtype': 'markdown', 'markdown': { 'content': '**💰 {{EntryTitle}}** \n --- \n 📍 Google Alert:`比特币` \n 🔗 [News Link]({{EntryUrl}}) \n > {{EntryContent}} \n\n > {{EntryPublished}} \n\n' }}
完成配置后,应该如下图所示。
推送会有延迟,大概稍等 5-10mins 左右,就会有新的消息推送到配置的企业微信群中了。
推送有延迟,根据实际观察:
Google Alerts 的更新频率在 1-2 小时左右。即新消息刊登在新闻网站上,大概 1-2 小时才会被 Google 收录,并发送到你指定的发送源中。
Google Alerts 的发送方式不同,会有细微的更新区别。选择「发送到 Email」,新消息推送会比「发送到 RSS Feed」快 10 mins。
总体来说,新消息从刊登在源头,到企业微信收到,会有 2-3 小时的延迟,个人认为,日常的舆情收集,可以接受。
Google Alerts 信息源:一般选择权重较高的消息源,收录的信息虽然少,但是有时候看到质量还行,还不能收录微博等信息。
想同时接收 Email & RSS Feed 的推送:在 Google Alerts 配置时,选择「发送到 Email」,然后在接收到新推送的 Email 中,复制「以 RSS Feed 的形式接受此快讯」的超链接,即为 RSS Feed URL
按照,第三部操作,作为 IFTTT 的 RSS 推送源即可。
一直收不到企业微信推送:先到 IFTTT 对应的 Applet 确定,是否有调用,调用是否成功。如果发现一直没有调用记录,那么请参照上面第三点,使用邮件中的 RSS Feed 作为信息源。
👏 本文首发于作者 Blog
🔍 水印问题:本文的关于企业微信的截图,多有水印模糊的痕迹,因为原水印为本人的真实姓名,涉及隐私故隐去,为原创截图。
✍️ 编辑问题:本文基于 iPad Air 编写,故写作过程包括截图也是来源于 iPad 截图(除去 banner 与效果图为电脑制作),格式与分辨率不对齐问题,请多包涵。
联系客服