PGYERドキュメントセンター

Webhook 设置

什么是 Webhook

Webhook 就是用户通过自定义回调的方式来改变 Web 应用的一种行为,这些回调可以由不是该 Web 应用官方的第三方用户或者开发人员来维护、修改。通过 Webhook,开发者可以自定义一些行为通知到指定的 URL 去。

在蒲公英中,使用 Webhook 功能,开发者可以将蒲公英上的部分事件消息,同步到另一个平台(或网站)上去。例如:开发者在蒲公英平台中,上传了一个应用版本、或者收到一条用户反馈时,蒲公英都会将这个消息推送到开发者制定的一个指定 URL 上去。

目前,蒲公英支持如下 6 种事件类型:应用更新、版本变动、应用反馈、App 设置变动、迁移应用、删除应用。

如何设置蒲公英 Webhook

  1. 设置基本信息。进入至应用 设置 - Webhook 设置,并点击 创建 Webhook,填写 Webhook 名称,选择 Webhook 类型
  2. 设置 Webhook URL。 根据具体的 Webhook 类型填写接受消息的 URL,例如,想在企业微信中接受通知时,则填写企业微信分配的 Webhook URL。
  3. 选择订阅内容。 选择需要订阅的应用消息内容,并设置 Webhook状态开启,点击 保存信息 即成功设置消息机器人。

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

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

数据协议

蒲公英针对第三方的 Webhook 服务,当蒲公英发送事件时,使用 HTTP POST 请求,Content-Typeapplication/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');
// or
$data = $HTTP_RAW_POST_DATA;

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

$info = json_decode($data, true);

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

企业微信群消息机器人设置

请打开企业微信,找到需要接受消息的群组:

  1. 打开群组的操作菜单,选择 添加群机器人
  2. 点击 添加机器人,输入机器人名称并添加
  3. 返回至蒲公英 Webhook 创建也面,将获取到的 URL 地址,复制输入至 Webhook URL

钉钉群消息机器人设置

  1. 点击群组回话页右上角设置,打开 智能群助手
  2. 点击添加 自定义机器人,输入机器人名称及设置 安全设置 - 自定义关键词应用,点击完成
  3. 返回至蒲公英消息机器人创建也面,将获取到的 URL 地址,复制输入至 Webhook URL

飞书群消息机器人设置

  1. 打开 群组设置,找到 群机器人,点击 添加机器人,选择 自定义机器人并添加
  2. 输入机器人名称及描述,点击 下一步
  3. 配置飞书群机器人 安全设置 - 自定义关键词为 应用 ,并复制 Webhook 地址,点击 完成;将复制的 Webhook URL 输入至蒲公英 Webhook URL。