概要
最近办公交流应用 Slack在各团队里大行其道,非常火热。 今天我们就来说说怎么用他的incoming-webhook来做一些同步通知。
从kintone发送通知给Slack
我们先来看看这种incoming-webhook来发送通知的优势
团队成员可以一次收到相同的通知
您可以为每个频道自行选择开/关通知
可以通过Slack手机端来接受通知
kintone 准备
准备一个app,添加一个字段,字段id为"aaa"。 同时启用流程管理。
Slack端的准备
首先创建一个频道(kintone_demo), 用来接收通知信息。
创建Incoming Webhook
通过 Incoming Webhooks可以很轻松的实现将信息实时传输到Slack。 有两种方法可以使用Slack的API发送消息。
Web API
Incoming Webhook
使用Web API的话,就必须所有的用户都获取API令牌。所以这次我先介绍如何使用Incoming Webhook。
打开Incoming Webhook Integration页面。
https://www.slack.com/services/new/incoming-webhook
选择要向其发送消息的频道,然后点击「Add Incoming WebHooks Integration」按钮,就进入了"Incoming WebHooks"的配置画面。
创建后,Webhook的URL将显示在页面上。记下这个url,稍后我们需要使用到他。当然你还可以继续配置自定义机器人名称和图标等等。Slack那边的工作现已完成。
kintone的 JavaScript自定义
接下来,我们是在kintone端实现通知的部分。在本文中,我们将简单地通过JS自定义实现通知,当然您也可以开发插件。另请参阅此处了解插件的开发。
kintone插件开发
https://cybozudev.kf5.com/hc/kb/article/1000664/
使用SendCloud API来制作发送邮件的插件
https://cybozudev.kf5.com/hc/kb/article/1126931/
post2slack.js
(function() { "use strict"; kintone.events.on("app.record.detail.process.proceed", function(e) { if (e.nextStatus.value == '完成') { var thisUrl = "https://*******.cybozu.com/k/" + kintone.app.getId() + "/show#record=" + kintone.app.record.getId(); var webhookUrl = 'https://hooks.slack.com/services/*****************'; var payload = { "text": "记录<" + thisUrl + "|「" + e.record.aaa.value + "」>状态已经完成!", "channel": "kintone_demo" }; return new kintone.Promise(function(resolve, reject) { kintone.proxy(webhookUrl, 'POST', {"Content-Type": "application/json"}, payload, function(body, status, headers) { console.log(status, body); resolve(e); }); }); } }); })();
首先,我绑定了app.record.detail.process.proceed事件,以便在更改流程管理状态时可以进行处理。状态完成后,kintone.proxy将向Slack的Incoming Webhook URL发送POST请求。(星号部分请按照自己环境的实际配置输入哦)
Slack的Incoming Webhook的详细用法在以下文档中描述。
https://api.slack.com/incoming-webhooks
最后
怎么样?通过使用Incoming Webhook,您可以轻松地向Slack发送消息。能够通过将通知整合到Slack来灵活地管理多个服务。此外,通过结合Outgoing Webhook和kintone的REST API,如果您使用Slack回复机器人消息,您还可以进行双向协作,例如继续使用kintone的记录等等。
国内还有一些其他类Slack的协同办公的im工具,像倍洽,Grouk等。基本也都有incoming webhook的通知组件,设置方法也大同小异, 也都能和我们的kintone完成对接。如果有遇到问题的小伙伴可以给我们提问哦。