App Center Webhook

重要

Visual Studio App Center 计划于 2025 年 3 月 31 日停用。 虽然可以继续使用 Visual Studio App Center,直到它完全停用,但你可以考虑迁移到几个建议的替代方法。

详细了解支持时间线和替代方案。

概述

Webhook 是在发生指定事件时通知第三方应用程序的一种简单方法。 Webhook main目标是将重要信息从 App Center 传达给用户,而不是让用户访问门户,或者运行 API 调用以在发生某些事件时收到通知。

App Center 的 Webhook 允许用户针对以下事件向连接的应用程序发送自动通知:

  • 生成:

    • 生成成功:

      • 始终:应用成功生成时
      • 仅当以前失败时:应用在一个或多个失败生成后成功生成时
      • 从不:你不会收到生成成功的通知
    • 生成失败:

      • 始终:当应用无法生成时
      • 仅当以前成功时:应用在一个或多个成功生成后无法生成时
      • 从不:你不会收到生成失败的通知
  • 崩溃:创建崩溃组时

  • 分发:将新版本发布到通讯组时

    注意

    对于分发,当新版本发布到通讯组时,将触发 Webhook。 如果选中“未在审阅”步骤中通知测试人员创建新版本,则不会触发 Webhook。 对于诊断,将为提供符号的新错误组触发 Webhook。 如果未找到新错误组的符号,则不会触发 Webhook。

App Center 会将 HTTP POST 有效负载发送到 Webhook 的指定 URL。 Webhook 是在指定应用的 “设置” 页下的应用级别配置的。 用户必须在应用中具有经理或开发人员权限才能创建和配置 Webhook。 我们目前仅支持 SlackMicrosoft Teams 的 Webhook。 若要发布到其他平台,可以编写 一个 Azure 函数 ,用于转换我们 POST 以满足平台要求的方式。

入门

  1. 导航到 “应用中心”,然后选择用于 Webhook 集成的特定应用。

  2. 在你的应用中,在最左侧的面板中,选择 “设置”

  3. 在标题为 Webhook 的行面板中,转到右角并单击 铅笔图标,这会打开 Webhook 面板

    如何编辑 Webhook 的设置

  4. 在右上角,单击蓝色的“ 新建 Webhook ”按钮,然后输入:

    • Webhook 名称

    • Webhook URL

      例如,可以从集成应用程序的设置 (获取 Webhook URL,下面是有关如何 从 Microsoft Teams 获取 Webhook URL 以及如何 从 Slack) 获取 Webhook URL 的详细信息。

      选择“生成状态通知 ”下拉列表 和“崩溃和分发通知 ”复选框 ,确定哪些事件将触发 Webhook 警报。

      如何创建新的 Webhook

  5. 完成! Webhook 现已创建并启用。 可以通过重复 步骤 4 创建多个 Webhook。

  6. 切换到 Webhook 最右侧以测试禁用或删除 Webhook。

    • test 将向连接的应用程序发送测试警报。
    • disable 使 webhook 保持非活动状态,但存在于仪表板中。
    • delete 将从仪表板中删除 Webhook。

发生这些事件时,App Center 通知将发布到集成应用程序中。 例如,下面是在连接的 Slack 应用程序中生成成功通知的外观:

在 Slack 上生成成功通知

Webhook 有效负载示例

下面是用于以下项的 JSON Webhook 有效负载的示例:

  1. 构建
{
  "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"
}
  1. 崩溃
{
  "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"
}
  1. 分发
{
  "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 检查有效负载。 为此,请导航到 “请求绑定”,单击“ 创建请求绑定”,然后在 “Bin URL” 下复制生成的 URL,并将 URL 粘贴为 App Center 中的 Webhook。

自定义 Webhook 支持

若要发布到其他平台,可以编写 一个 Azure 函数 ,用于转换我们 POST 以满足平台要求的方式。 为此,请创建一个 Azure 函数,将 URL 粘贴到步骤 4 中的“Webhook URL”字段下,App Center 会将 Webhook 有效负载发布到该终结点。 然后,可以根据平台的要求修改有效负载。