借助 webhook 方法,web 应用程序或服务可以向另一个 web 服务发送近实时信息。 将由定义的一个或多个特定事件触发通信。 当触发事件发生时,系统将立即发出通知,而非反复检查是否存在更新。
在 ArcGIS Online 中,可以为托管要素图层、托管要素图层视图和托管表创建 webhook。 这些 webhook 将根据定义的事件触发器向 webhook 接收器发送负载。 可将接收器配置为执行自动化操作,例如:向预定义收件人列表发送有关编辑内容的通知,将有关编辑内容的信息导出至外部应用程序以创建变更报告,或者对已编辑数据运行质量控制脚本。
此通信通道的组件如下所示:
- 事件触发器 - 每个事件触发器用于指定针对项目的源要素服务执行的 API 操作,这些操作将调用 webhook。 当用户执行已指定为事件触发器的操作时,webhook 会将该信息(作为负载)发送至 webhook 接收器。 当创建 webhook 时,需要指定触发器。 有关您可以设置的特定事件触发器,请参阅要素图层事件触发器。
- 负载 - 负载包含与触发事件相关的特定信息。 有关负载中所包含内容的信息,请参阅要素图层 webhook 负载。
- Webhook 接收器 - Webhook 接收器将接收负载,并向预定义收件人列表(用户或应用程序)发送信息。 例如,可以发送电子邮件或短信,通知用户触发事件已发生;将触发事件的相关信息发送至外部数据库进行归档;或者根据已发生的触发事件对数据运行脚本。
可以使用第三方 web 服务接收器或者自定义 web 服务作为 webhook 接收器。 在将 webhook 添加至项目之前,必须将 webhook 接收器配置为通过 HTTPS 连接进行通信以接收负载,并且您的 ArcGIS Online 组织必须能够访问这些接收器。 将通过您在创建 webhook 时指定的负载 URL 来访问 webhook 接收器。
将在 ArcGIS Online 外配置 webhook 接收器。 配置接收器后,即可创建 webhook。
要求
在为托管要素图层、视图或表格创建 webhook 之前,该项目必须满足以下要求:
- 必须启用保持对数据更改的追踪(添加、更新、删除要素) 设置。
- 该项目不能位于回收站中。
每个项目最多可以拥有 10 个 webhook。
Webhook 创建
下表列出了能够为托管要素图层、托管要素图层视图和托管表格创建及管理 webhook 的组织成员类型,以及这些成员可在哪些位置管理 webhook 的信息。
| 组织成员的类型 | 可以管理 webhook 的位置 |
|---|---|
| |
项目的所有者 |
|
已与其共享该项目的共享更新群组的成员 | 托管要素图层、视图或表格的项目页面的设置选项卡 - 群组成员可以为特定项目创建并管理 webhook。 |
请根据您在组织中的角色,按照相应说明创建 webhook: