事件触发器

创建 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