创建 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 |
将在要素服务上执行 post 操作 注:要使用此事件触发器计划 webhook,要素服务必须启用版本管理功能。 有关详细信息,请参阅创建 webhook 文档。 | FeaturesPosted |