利用webhook实现发送通知到BearyChat

betsy_yan发表于:2018年10月18日 17:35:27更新于:2021年10月20日 17:04:21

概要

今天我们要教大家如何通过webhook发送通知到BearyChat(倍洽)。
之前我们教了大家怎么利用webhook发通知到Slack(如果有小伙伴是使用国外软件Slack的,请到 利用webhook实现发送通知到Slack 查看),同样的,我们也是利用incoming-webhook来做一些同步通知。

BearyChat

BearyChat是类似于Slack的国内产品,比较适合于国人。
同样的用incoming-webhook来发送通知有以下优势:

  • 可灵活配置任意数量的机器人

kintone端准备

准备一个app,添加一个字段,字段代码为"aaa"。 

Image53.png再启用流程管理。Image57.png

BearyChat端准备

首先创建一个讨论组(例如:cybozu), 用来接收通知信息。

0015bc83bb3dafaa16ad7755a056977

配置Incoming Webhook

创建完讨论组(例如:cybozu)后,需要添加机器人进行机器人管理。
0015bc99adaa86daae251d0f4444091

添加完机器人后就可以进行Incoming配置了,点击“Incoming”配置。0015bc99b6ac6598af725e48b40b7f3

这里我们需要获取Webhook的配置信息,找到“Webhook”链接,稍后我们需要用到这个。所以可以先留着这个画面或先点击“复制”,保存下这个链接。
0015bc99cdb63cf655e9c323f60ad1e

kintone的JavaScript自定义

之后我们需要进行JavaScript自定义开发,实现kintone通过webhook发送通知到BearyChat。
我们假定当kintone应用流程完成后,系统自动发送通知到BearyChat的讨论组内。

post2BearyChat.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://hook.bearychat.com/***********************************';
            var payload = {
                "text": "记录「" + e.record.aaa.value + "」状态已经完成!",
                "channel": "cybozu",
				"attachments": [
					{
						"title": "请查看",
						"url": thisUrl,
						"color": "#ffa500",
					}
				]
            };
            return kintone.proxy(webhookUrl, 'POST', {
                "Content-Type": "application/json"
            }, payload).then(function(resp) {
                console.log(resp);
            });
        }
    });
})();

首先,我绑定了app.record.detail.process.proceed事件,以便在更改流程管理状态时可以进行处理。状态完成后,kintone.proxy将向Slack的Incoming Webhook URL发送POST请求。(星号部分请按照自己环境的实际配置输入哦)

发送成功

0015bc9a9ffc8e4460f39d6e086dcaf

Incoming配置教程

以上JS我们只是选取了某些内容进行展示,有兴趣或有需求的小伙伴可以按照配置教程进行个性化设置。0015bc9aee10ae636b6a957560397da

最后

小伙伴们学会了吗?什么疑问欢迎大家在文章最后意见或者在开发者社区中提出。
而且我们也会根据小伙伴们的需求不定期的为大家介绍一些和外部服务关联的文章。