创建 webhook 时,您可以选择订阅与 API 操作相关的特定事件触发器,这些操作将调用您的 webhook 并通过负载传送事件信息。 以下部分列出了可用的事件触发器及其关联的 URI 或组织和要素服务 webhook 的更改类型值。
注:
与组织和要素服务 webhook 不同,地理处理服务 webhook 没有用户定义的事件触发器。 地理处理服务 webhook 会在地理处理作业完成后传送负载。 有关为地理处理服务传送负载的详细信息,请参阅负载主题。
组织项目事件
下表列出了组织项目(包括 Web 地图、Web 应用程序、图层、包和 PDF)的事件触发器:
| 事件触发器 | URI | 
|---|---|
| 适用于所有项目的所有触发事件 | /items | 
| 一个项目已添加到门户 | /items/add | 
| 任意项目已删除 | /items/delete | 
| 任意项目已更新 | /items/update | 
| 任意项目已移动或所有权已更改 | /items/move | 
| 任意项目已发布 | /items/publish | 
| 任意项目已共享 | /items/share | 
| 任意项目未共享 | /items/unshare | 
| 任意项目的所有权已重新分配 | /items/reassign | 
| 注释已添加到任何项目 | /items/addComment | 
| 评论已从任何项目中删除 | /items/deleteComment | 
| 注释已更新到任何项目 | /items/updateComment | 
| 适用于特定项目的所有触发事件 | /items/<itemID> | 
| 指定项目已删除 | /items/<itemID>/delete | 
| 指定项目的属性已更新 注:可以更新的项目属性因项目类型而异,并且存在触发 Update 操作的唯一操作。 例如,如果项目是 Web 地图,则更新标签、配置弹出窗口或更改底图都是会触发 webhook 的更新事件。 | /items/<itemID>/update | 
| 特定项目的所有权已更改或该项目已移动 | /items/<itemID>/move | 
| 指定项目已发布 | /items/<itemID>/publish | 
| 指定项目已共享 | /items/<itemID>/share | 
| 指定项目未共享 | /items/<itemID>/unshare | 
| 特定项目的所有权已重新分配 | /items/<itemID>/reassign | 
| 注释已添加到特定项目 | /items/<itemId>/addComment | 
| 评论已从特定项目中删除 | /items/<itemId>/deleteComment | 
| 注释已更新到特定项目 | /items/<itemId>/updateComment | 
项目事件触发器属性
组织项目的某些事件触发器可在其负载中返回其他属性。 以下部分概述了这些触发器的其他负载属性。
指定项目已共享
订阅 /items/<itemID>/share 事件触发器的 webhook 的负载中包含 sharedToGroups 属性。 sharedToGroups 属性指定项目的共享方式。 如果项目已与群组共享,则 properties JSON 对象将包含项目共享到的每个群组的 ID。 如果项目已与组织整体共享,则对象包含 Organization。 如果项目已公开共享,则对象包含 Everyone。 下方示例演示了将项目共享给特定群组,以及将项目公开共享并共享给特定群组。
示例
//groupIDs
"properties": {
  "sharedToGroups": [
    "ecd6646698b24180904e4888d5eaede3",
    "2dff15c514ad4f04b291e304e24a524b"
  ]
}
//Everyone and groupIDs
"properties": {
  "sharedToGroups": [
    "Everyone",
    "4adc30bb03054812a846fa592de105de",
    "a4e6e37e2f7d4bb5b64d587c91d39a2c"
  ]
}任意项目的所有权已重新分配
订阅 /items/reassign 事件触发器的 webhook 的负载中包含 reassignedTo 属性。 reassignedTo 属性指定项目或群组重新分配到的新用户,在 properties JSON 对象中返回新所有者的用户名。
示例
"properties": {
  "reassignedTo": ["newOwner"]
}指定项目未共享
订阅 /items/<itemID>/unshare 事件触发器的 webhook 的负载中包含 unsharedFromGroups 属性。 unsharedFromGroups 属性指定项目取消共享的方式。 如果项目已从群组取消共享,则 properties JSON 对象将包含取消与之共享项目的每个群组的 ID。 如果项目已从组织整体取消共享,则对象包含 Organization。 如果项目已取消公开共享,则对象包含 Everyone。 下方示例属性演示了将项目取消公开共享,以及从特定群组取消共享项目。
示例
//Everyone
"properties": {
  "unsharedFromGroups": ["Everyone"]
}
//groupID
"properties": {
  "unsharedFromGroups": [
    "4adc30bb03054812a846fa592de105de"
  ]
}特定项目的所有权已重新分配
订阅 /items/<itemID>/reassign 事件触发器的 webhook 的负载中包含 reassignedTo 属性。 reassignedTo 属性指定项目或群组分配到的新用户,在 properties JSON 对象中返回新所有者的用户名。
示例
"properties": {
  "reassignedTo": ["newOwner"]
}组织群组事件
下表列出了组织群组的事件触发器:
| 事件触发器 | URI | 
|---|---|
| 适用于所有群组的所有触发事件 | /groups | 
| 一个组已添加 | /groups/add | 
| 任意组已更新 | /groups/update | 
| 任意组已删除 | /groups/delete | 
| 任何组启用了删除保护 | /groups/protect | 
| 任意群组禁用了删除保护 | /groups/unprotect | 
| 用户被邀请加入任意组 | /groups/invite | 
| 用户被添加至任意组 | /groups/addUsers | 
| 用户已从任何组中移除 | /groups/removeUsers | 
| 任何组中,用户的角色已更新 | /groups/updateUsers | 
| 任意群组的所有权已重新分配 | /groups/reassign | 
| 与任何群组共享项目 | /groups/itemShare | 
| 未与任何群组共享项目 | /groups/itemUnshare | 
| 用户提交加入任意群组的请求 | /groups/requestJoin | 
| 适用于特定群组的所有触发事件 | /groups/<groupID> | 
| 指定组已更新 注:对群组设置所做的任何常规更改都会构成更新。 例如,更改群组的访问权限即会触发更新事件。 | /groups/<groupID>/update | 
| 指定组已删除 | /groups/<groupID>/delete | 
| 指定群组启用了删除保护 | /groups/<groupID>/protect | 
| 指定群组禁用了删除保护 | /groups/<groupID>/unprotect | 
| 用户被邀请加入指定组 | /groups/<groupID>/invite | 
| 用户被添加至指定组 | /groups/<groupID>/addUsers | 
| 用户已从指定组中移除 | /groups/<groupID>/removeUsers | 
| 指定组中,用户的角色已更新 | /groups/<groupID>/updateUsers | 
| 指定群组的所有权已重新分配 | /groups/<groupID>/reassign | 
| 项目共享到群组 | /groups/<groupID>/itemShare | 
| 项目未与特定群组共享 | /groups/<groupID>/itemUnshare | 
| 用户请求加入特定群组 | /groups/<groupId>/requestJoin | 
群组事件触发器属性
组织群组的某些事件触发器可在其负载中返回其他属性。 以下部分概述了这些触发器的其他负载属性。
用户被邀请加入指定组
订阅 /groups/<groupID>/invite 事件触发器的 webhook 的负载中包含 invitedUserNames 属性。 invitedUserNames 属性指定受邀加入群组的用户的用户名,在 properties JSON 对象中返回一个用户名列表。
示例
"properties": {
  "invitedUserNames": [
    "u1TestUser",
    "u2TestUser"
  ]
}用户被添加至指定组
订阅 /groups/<groupID>/addUsers 事件触发器的 webhook 的负载中包含 addedUserNames 属性。 addedUserNames 属性指定被添加到群组的用户的用户名,在 properties JSON 对象中返回一个用户名列表。
示例
"properties": {
  "addedUserNames": [
    "u1TestUser",
    "u2TestUser"
  ]
}用户已从指定组中移除
订阅 /groups/<groupID>/removeUsers 的 webhook 的负载中包含 removeUserNames 属性。 removeUserNames 属性指定从群组中移除的用户的用户名,在 properties JSON 对象中返回一个用户名列表。
示例
"properties": {
  "removedUserNames": [
    "u1TestUser",
    "u2TestUser"
  ]
}指定组中,用户的角色已更新
订阅 /groups/<groupID>/updateUsers 的 webhook 的负载中包含 updateUserNames 属性。 updateUserNames 属性指定群组角色已更新的用户的用户名,在 properties JSON 对象中返回一个用户名列表。
示例
"properties": {
  "updatedUserNames": [
    "u1TestUser",
    "u2TestUser"
  ]
}项目共享到群组
订阅 /groups/<groupID>/itemShare 的 webhook 的负载中包含 sharedItems 属性。 sharedItems 属性指定共享给群组的项目的 itemID 和项目类型,在 properties JSON 对象中返回此信息。
示例
"properties": {
  "sharedItems": [
    {
      "itemId": "6cd80cb32d4a4b4d858a020e57fba7b1",
      "itemType": "Map Package"
    }
  ]
}项目未与特定群组共享
订阅 /groups/<groupID>/itemUnshare 的 webhook 的负载中包含 unsharedItems 属性。 unsharedItems 属性指定从群组共享的项目的 itemID 和项目类型,在 properties JSON 对象中返回此信息。
示例
"properties": {
  "unsharedItems": [
    {
      "itemId": "7dd95fadaec84859ab8ed1059e675e0c",
      "itemType": "Image"
    }
  ]
}组织用户事件
下表列出了组织用户的事件触发器:
| 事件触发器 | URI | 
|---|---|
| 适用于门户中所有用户的所有触发事件 | /users | 
| 用户被添加至组织 | /users/add | 
| 任意用户已登录门户 | /users/signin | 
| 任意用户已登出门户 | /users/signout | 
| 任意用户已删除 | /users/delete | 
| 任意用户的配置文件已更新 注:无论何时对用户的配置文件进行更改,都会触发更新事件。 但是,对用户角色、用户类型或许可所做的更改不会被视为对用户配置文件的更新。 | /users/update | 
| 任意用户的帐户已被禁用 | /users/disable | 
| 任意用户的帐户已被启用 | /users/enable | 
| 任意用户已被分配了新的角色 | /users/updateUserRole | 
| 任意用户已被分配了新的用户类型 | /users/updateUserLicenseType | 
| 启用用户账户列表 | /users/bulkEnable | 
| 禁用用户账户列表 | /users/bulkDisable | 
| 与特定用户关联的所有触发事件 | /users/<username> | 
| 指定用户已登录门户 | /users/<username>/signIn | 
| 指定用户已登出门户 | /users/<username>/signOut | 
| 指定用户已删除 | /users/<username>/delete | 
| 指定用户的配置文件已更新 注:无论何时对用户的配置文件进行更改,都会触发更新事件。 但是,对用户角色、用户类型或许可所做的更改不会被视为对用户配置文件的更新。 | /users/<username>/update | 
| 指定用户的帐户已被禁用 | /users/<username>/disable | 
| 指定用户的帐户已被启用 | /users/<username>/enable | 
| 特定用户已被分配了新的角色 | /users/<username>/updateUserRole | 
| 特定用户已被分配了新的用户类型 | /users/<username>/updateUserLicenseType | 
用户事件触发器属性
组织用户的某些事件触发器可在其负载中返回其他属性。 以下部分概述了这些触发器的其他负载属性。
特定用户已被分配了新的角色
订阅 /users/<username>/updateUserRole 的 webhook 的负载中包含 userRoleUpdatedTo 属性。 userRoleUpdatedTo 属性指定为用户分配的新角色,在 properties JSON 对象中返回新角色。
"properties": {
  "userRoleUpdatedTo": ["New role"]
}特定用户已被分配了新的用户类型
订阅 /users/<username>/updateUserLicenseType 的 webhook 的负载中包含 userLicenseTypeUpdatedTo 属性。 userLicenseTypeUpdatedTo 属性指定为用户分配新用户类型,在 properties JSON 对象中返回新用户类型。
"properties": {
  "userLicenseTypeUpdatedTo": ["Editor"]
}组织角色事件
下表列出了组织用户角色的事件触发器:
| 事件触发器 | URI | 
|---|---|
| 适用于门户中所有角色的所有触发事件 | /roles | 
| 随即将创建新角色 | /roles/add | 
| 现有角色已更新 注:无论何时对组织的角色进行更改,都会触发更新事件。 | /roles/update | 
| 现有角色已删除 | /roles/delete | 
角色事件触发器属性
组织角色的某些事件触发器可在其负载中返回其他属性。 以下部分概述了这些触发器的其他负载属性。
随即将创建新角色
订阅 /roles/add 事件触发器的 webhook 的负载中包含 name 属性。 name 属性指定所创建角色的名称,在 properties JSON 对象中返回角色名称。
示例
"properties": {
  "name": ["New role"]
}要素服务事件
下表列出了要素服务 webhook 的事件触发器:
| 事件触发器 | 值 | 
|---|---|
| 触发任意事件 | * | 
| 创建新要素 | FeaturesCreated | 
| 更新要素 | FeaturesUpdated | 
| 删除要素 | FeaturesDeleted | 
| 编辑要素(例如,插入、更新或删除) | FeaturesEdited | 
| 向要素添加新附件 | AttachmentsCreated | 
| 更新要素附件 | AttachmentsUpdated | 
| 删除要素附件 | AttachmentsDeleted | 
| 要素图层方案已更改 | LayerSchemaChanged | 
| 要素图层定义已更改 | LayerDefinitionChanged | 
| 要素服务定义已更改 | FeatureServiceDefinitionChanged |