蒲公英Webhook设置指南

一.什么是蒲公英webhook

Webhook 就是用户通过自定义回调的方式来改变 Web 应用的一种行为,这些回调可以由不是该 Web 应用官方的第三方

用户或者开发人员来维护,修改。通过 Webhook,你可以自定义一些行为通知到指定的 URL 去。

在蒲公英中,使用 Webhook 功能,开发者可以将蒲公英上的部分事件消息,同步到另一个平台(或网站)上去。例如:

开发者在蒲公英平台中,上传了一个应用版本、或者收到一条用户反馈时,蒲公英都会将这个消息推送到开发者制定的

一个指定 URL 上去。

目前,蒲公英支持如下6种事件类型:

image.png

二.如何设置蒲公英Webhook

1.进入至应用“设置—Webhook设置”,并点击创建Webhook

填写Webhook名称,选择Webhook类型,如需要将消息通知至企业OA系统,现支持企业微信群,钉钉群,飞书群;

如需要发送消息至其他URL,请选择“其他指定URL”。

2.设置Webhook URL

image.png

如选择企业OA办公系统,如:已选择“企业微信群”,请打开企业微信,找到需要接受消息的群组;

企业微信群:

(1)打开群组的操作菜单,选择“添加群机器人”

image.png

(2)点击“添加机器人”,输入机器人名称并添加

image.png

(3)返回至蒲公英Webhook创建也面,将获取到的URL地址,复制输入至“Webhook URL”

image.png

钉钉群:

(1)点击群组回话页右上角设置,打开“智能群助手”

image.png

(2)点击添加“自定义机器人”,输入机器人名称及设置“安全设置—自定义关键词”为“应用”,点击完成

image.png

image.png

(3)返回至蒲公英消息机器人创建也面,将获取到的URL地址,复制输入至“Webhook URL”

image.png

飞书群:

(1)打开群组设置,找到群机器人,点击“添加机器人”,选择“自定义机器人”并添加

image.png

(2)输入机器人名称及描述,点击“下一步”:

image.png

(3)配置飞书群机器人“安全设置—自定义关键词”为“应用”,并复制Webhook 地址,点击“完成”;将复制的Webhook URL输入至蒲公英Webhook URL。

image.png

如选择“其他指定URL”,请输入接收推送消息的URL;这里如果是需要集成纷纭或 HiWork 等服务 ,该 URL 由纷纭或

 HiWork 提供。如果需要开发Webhook服务,请查阅文档末尾“其他事项—Webhook服务开发“。

3.选择订阅内容,设置开启Webhook,点击保存信息。

选择需要订阅的应用消息内容;设置“Webhook状态”为“开启Webhook”状态;点击“保存信息”即成功设置消息机器人。

这样,蒲公英就会在上述相关事件发生时,将消息推送到刚刚设置的 URL 上。

image.png

三.其他事项

1.Webhook的注意事项和调试方式

蒲公英支持对同一个应用设置多个Webhook,开发者可以重复上述过程,再次创建即可。但是同一个应用最多只能添加3个Webhook

如果开发者是自己开发Webhook服务或者仅仅想测试,推荐使用Request服务(http://request.lesschat.com/

2.Webhook服务开发

蒲公英针对第三方的 Webhook 服务,当蒲公英发送事件时,使用 HTTP POST 请求,Content-Type 为 application/json,数据格式为 JSON。 例如,有应用的新版本上传时,蒲公英发送的数据格式类似如下形式(实际情况下会有稍许不同):

{ "action": "应用更新", "title": "OooPlay", "link": "https://www.pgyer.com/oooplay_test", "message": "您的应用OooPlay有了新的版本(2.4)更新。", "type": "updateVersion", "os_version": "2.4", "build_version": "139", "created": "2015-10-09 11:25:16", "updated": "2015-10-09 11:25:16", "timestamp": 1444361118, "appsize": "2238036", "device_type": 'iOS', "notes": "修复了一些小弱智的小bug" }

当应用收到『摇一摇反馈』信息时,蒲公英会发送如下类似格式的数据(实际情况下会有稍许不同):

{ "action": "应用反馈", "title": "OooPlay", "link": "https://www.pgyer.com/oooplay_test", "message": "您的应用OooPlay收到一条新的反馈信息", "type": "feedback", "os_version": "2.4", "build_version": "139", "created": "2015-10-09 11:25:16", "updated": "2015-10-09 11:25:16", "timestamp": 1444361118, "appsize": "2238036", "device_type": 'iOS', "notes": "修复了一些小弱智的小bug" }

当应用收到 Crash Log 信息时,蒲公英会发送如下类似格式的数据(实际情况下会有稍许不同):

{ "action": "Crash log", "title": "OooPlay", "link": "https://www.pgyer.com/oooplay_test", "message": "您的应用OooPlay收到了新的Crash Log", "type": "crashlog", "os_version": "2.4", "build_version": "139", "created": "2015-10-09 11:25:16", "updated": "2015-10-09 11:25:16", "timestamp": 1444361118, "appsize": "2238036", "device_type": 'iOS', "notes": "libsystem_kernel.dylib 0x3094c49c mach_msg_trap 20 CoreFoundation 0x21edf7f3 <redacted> 146 CoreFoundation 0x21edddb9 <redacted> 1016 ..." }

第三方 Webhook 服务可以使用获取 POST RAW 数据的方式来获取消息数据。例如,在 PHP 中可以用如下方式获取数据:

$data = file_get_contents('php://input');

或者:

$data = $HTTP_RAW_POST_DATA;

获取到数据之后,再进行 JSON DECODE 即可解析出具体的数据,例如:

$info = json_decode($data, true);

之后,第三方 Webhook 服务即可将获取到的消息数据,根据自身的业务逻辑进行相应处理,例如可以显示在自己平台的消息流、或通知中心等。