本教程将引导您完成在网络上设置和测试 Webhook 的各个步骤 ORCID 记录。
Webhooks 更改通知是一个 ORCID 高级会员功能,使应用程序能够在共享数据时收到通知 ORCID 记录变化。 此功能允许高级会员及时了解新信息,甚至根据活动在他们自己的系统中触发事件。 请注意,实际的数据交换是基于隐私级别设置的 ORCID iD 持有人,以及个人授予成员组织的权限。
使用 API 和您的成员 API 客户端凭据,您可以为每个 ORCID iD 您正在观看,当发生变化时,我们将通知该回调 URL ORCID 记录。
获取 Webhook 访问令牌
为了使用 webhook 功能,您需要生成允许您创建 webhook 的访问令牌。 此过程只需要完成一次,然后可以使用相同的访问令牌在多个网络钩子上创建 ORCID 纪录。
任何高级会员都可以获得“/webhook”访问令牌。 单个令牌可用于为多个记录注册 webhook。 要获得令牌,您可以调用 ORCID API 令牌端点。
此过程通常称为客户端凭据 OAuth 流程,或 2 步 OAuth。
下面是获取访问令牌的示例调用 - 用您的凭据替换占位符(确保删除括号。)
curl -i -L -H "Accept: application/json"
-d "client_id=(your client ID)"
-d "client_secret=(your client secret)"
-d "scope=/webhook"
-d "grant_type=client_credentials"
"https://sandbox.orcid.org/oauth/token"
然后,您将收到类似于以下内容的访问令牌。
{"access_token":"5eb23750-1e19-47a3-b6f6-26635c34e8ee",
"token_type":"bearer",
"refresh_token":"c7d3d5fd-e4c0-4825-89f2-7cfb4a1cf01e",
"expires_in":631138518,
"scope":"/webhook"}
注册一个网络钩子
获得 webhooks 访问令牌后,您就可以开始注册 webhooks。 您可以针对 ORCID iD 未经用户许可,因为该功能仅查看用户可用的公共数据 ORCID 记录。
高级会员可以针对任何 ORCID 记录在注册表中。 步骤是:
对网址进行编码
URL 编码您想要的 URL ORCID 更新用户记录时调用。 例如以下网址:
https://nowhere2.com/0000-0002-7465-2162/updated
成为
https%3A%2F%2Fnowhere2.com%2F0000-0002-7465-2162%2Fupdated
建立网址
构建完整的 URL ORCID 以 URL 开头的 API 调用 ORCID 记录然后添加“√∫/webhook”√π 和你想要调用的 URL。 所以它应该看起来像 https://api.sandbox。orcid.org/{ORCID}/webhook/{URL-ENCODED-WEBHOOK-URL}
例如,使用上面的 webhook URL 和 ORCID iD 0000-0002-7465-2162,完整网址为:
https://api.sandbox.orcid.org/0000-0002-7465-2162/webhook/https%3A%2F%2Fnowhere2.com%2F0000-0002-7465-2162%2Fupdated
注册网络钩子
使用您的 webhooks、访问令牌针对用户的注册您的 webhook ORCID 记录。 您需要使用 HTTP PUT 请求,但不应在请求正文中包含任何内容。
URL= https://api.sandbox.orcid.org/0000-0002-7465-2162/webhook/https%3A%2F%2Fnowhere2.com%2F0000-0002-7465-2162%2Fupdatedn HEADER: Accept: application/json HEADER: Authorization: Bearer [Your access token]n HEADER: Content-Length: 0n METHOD: PUT
响应应该是 201,但如果回调已经存在,那么响应将是 204。
HTTP/1.1 201nServer: nginx/1.1.19nConnection: keep-alive Location: https://api.sandbox.orcid.org/0000-0002-7465-2162/webhook/https%3A%2F%2Frequestb.in%2Fz57lzcz5
接收 webhook 调用
一旦你注册了一个 webhook URL,当用户的 ORCID 记录已更新。 挂钩通知每五分钟发送一次,以避免对单个用户会话进行多次调用。
ORCID 当记录更新时,Registry 将执行以下 HTTP 调用。 该请求使用 HTTP POST 方法,但请求正文为空。
curl -v -X POST https://nowhere2.com/0000-0002-7253-3645/updated
您的服务器应使用标准 HTTP 响应代码进行响应。 因此,如果调用成功,您应该返回 204 No Content。
HTTP/1.1 204 No Content
任何 2xx 响应代码都表示调用成功。 如果您返回的代码不是 2xx,我们将在五分钟后重试呼叫。
取消注册网络钩子
您可以从 ORCID iD 如果您不再希望将自己系统中的数据与该特定 ORCID.
取消注册 webhook 的 URL 与注册的 URL 相同。 但是,您需要使用 HTTP DELETE 方法。
URL= https://api.sandbox.orcid.org/0000-0002-7465-2162/webhook/https%3A%2F%2Fnowhere2.com%2F0000-0002-7465-2162%2Fupdated
HEADER: Authorization: Bearer [Your access token]
HEADER: Content-Length: 0
METHOD: DELETE
回应应该是 204 No Content
.
HTTP/1.1 204 No Content
Server: Apache-Coyote/1.1
Date: Fri, 05 Apr 2013 12:49:17 GMT