App Center Webhook
概述
Webhook 是一种在出现指定事件时通知第三方应用程序的简单方法。 Webhook 的主要目标是将来自 App Center 的重要信息传达给用户,而不是让用户进入门户,或运行 API 调用以在某些事件发生时收到通知。
App Center Webhook 允许用户针对以下事件向连接的应用程序发送自动通知:
生成:
生成成功:
- 始终:应用成功生成时
- 仅在之前失败时:应用在一个或多个失败生成后成功生成时
- 从不:不会收到生成成功的通知
生成失败:
- 始终:当应用无法生成时
- 仅在之前成功时:应用在一个或多个成功生成后无法生成时
- 从不:不会收到生成失败通知
崩溃:创建崩溃组时
分发:将新版本发布给通讯组时
备注
对于"分发",当向通讯组发布新版本时,将触发 Webhook。 如果在创建新 发布的"查看" 步骤中选中了"不通知测试人员",则 Webhook 不会发送。 对于诊断,将为提供符号的新错误组触发 Webhook。 如果没有为新错误组找到符号,则不会激发 webhook。
App Center 会将 HTTP POST 有效负载发送到 webhook 的指定 URL。 Webhook 在指定应用的 " 设置 " 页下的应用程序级别配置。 用户必须具有该应用程序的管理员或开发人员权限才能创建和配置 webhook。 目前仅支持 webhook 和 Microsoft 团队。 若要发布到其他平台,可以编写一个 Azure 函数 ,用于转换 POST 满足平台要求的方式。
入门
导航到 " App Center",然后选择要 webhook 集成的特定应用。
在应用中的最左侧面板中,选择 "设置"
在标题为 " webhook" 的行面板中,转到右侧角,并单击 铅笔图标,此时将显示 " webhook " 面板。

在右上角,单击蓝色的 " 新建 Webhook " 按钮,然后输入:
Webhook 名称
Webhook URL
你可以从集成应用程序的设置中获取 webhook URL (例如,以下是如何 从 Microsoft 团队获取 WEBHOOK url 以及如何 从可宽延时间) 获取 webhook url 的详细信息。
选择 "生成状态通知" 的 下拉列表 ,并选择 "崩溃和分发通知" 复选框 ,以确定将触发 webhook 警报的事件。

完成! 现已创建并启用 webhook。 可以通过重复 步骤 4创建多个 webhook。
切换到 webhook 的极端右侧,以 测试、 禁用 或 删除 webhook。
- 测试 会将测试警报发送到已连接的应用程序。
- 禁用 会使 webhook 保持不活动状态,但不会显示在仪表板中。
- 删除 将从仪表板中删除 webhook。
发生这些事件时,App Center通知将发送到集成应用程序中。 例如,对于连接的 Slack 应用程序,生成成功通知如下所示:

示例 Webhook 有效负载
下面是以下 JSON Webhook 有效负载的示例:
- 构建
{
"app_name": "myFirstApp",
"branch": "main",
"build_status": "Succeeded",
"build_id": "33",
"build_link": "https://appcenter.ms/users/{user-id}/apps/{app-name}/build/branches/main/builds/33",
"build_reason": "manual",
"finish_time": "2018-06-14T23:59:05.2542221Z",
"icon_link": "https://appcenter-filemanagement-distrib4ede6f06e.azureedge.net/f7794e4c-42f1-4e7c-8013-07ed2e1b733d/ic_launcher.png?sv=2020-02-18&sr=c&sig=gs4JfcWjpKeYH%2F%2Fg0jEtSKKbeRkug9q%2FldslmzzeOg0%3D&se=2020-02-26T08%3A57%3A58Z&sp=r",
"notification_settings_link": "https://appcenter.ms/users/{user-id}/apps/{app-name}/settings/notifications",
"os": "iOS",
"start_time": "2018-06-14T23:57:03.4379381Z",
"source_version": "55820a357ba26831f2eeb3be9973a4ef20618b73",
"sent_at": "2018-06-14T23:59:08.4897604Z"
}
- 崩溃
{
"id":"3698593379u",
"name":"android.app.Activity.performResume (Activity.java:5084)",
"reason":"android.app.SuperNotCalledException",
"url":"https://appcenter.ms/orgs/{org-id}/apps/{app-name}/crashes/errors/3698273379u",
"app_display_name":"{app-name}",
"app_platform":"Java",
"app_version":"2.0.1(42)",
"stack_trace":[],
"affected_users":0,
"crash_count":0,
"sent_at":"2019-05-16T23:47:31.4881512Z",
"app_id":"48573473-f069-4715-8bab-9ae42cec48b2"
}
- 分发
{
"app_name":"{app-name}",
"app_display_name":"{app-display-name}",
"release_id":"123",
"platform":"Android",
"uploaded_at":"2018-07-17T20:46:14Z",
"fingerprint":"0abed1269e4ae3bf524e4cc7165f4f34",
"release_notes":"",
"version":"74",
"short_version":"1.7.0",
"min_os":"4.0.3",
"mandatory_update":true,
"size":2634279,
"provisioning_profile_name":null,
"provisioning_profile_type":null,
"bundle_identifier":"com.microsoft.appcenter.test",
"install_link":"https://install.appcenter.ms/orgs/{org-name}/apps/{app-name}/releases/123?source=email",
"icon_link":"https://appcenter-filemanagement-distrib4ede6f06e.azureedge.net/f7794e4c-42f1-4e7c-8013-07ed2e1b733d/ic_launcher.png?sv=2020-02-18&sr=c&sig=gs4JfcWjpKeYH%2F%2Fg0jEtSKKbeRkug9q%2FldslmzzeOg0%3D&se=2020-02-26T08%3A57%3A58Z&sp=r",
"distribution_group_id":"1a5a0605-4b9c-4de2-9a35-t569456df0cc",
"installable":true,
"sent_at":"2019-05-16T23:20:08.7799314Z",
"app_id":"f37c6194-9ac9-4504-be61-55re334r5649"
}
还可使用 RequestBin 检查有效负载。 为此,请导航到 "RequestBin",单击"创建 RequestBin", 然后在"箱 URL" 下复制生成的 URL,然后将该 URL 作为 Webhook 粘贴到App Center。
自定义 Webhook 支持
若要向其他平台发布,可以编写一个 Azure 函数,该 函数 可转换我们满足 POST 平台要求的方式。 为此,请创建 一个 Azure函数,将 URL 粘贴到步骤 4中的 "Webhook URL" 字段下,App Center Webhook有效负载发布到该终结点。 然后,你可以根据平台的要求修改有效负载。