本教程將引導您完成在網絡上設置和測試 Webhook 的各個步驟 ORCID 記錄。
Webhooks 更改通知是一個 ORCID 高級會員功能使應用程序能夠在公共數據在某個範圍內時得到通知 ORCID 記錄變化。 此功能允許高級會員隨時了解新信息,甚至可以根據活動在自己的系統中觸發事件。 請注意,實際的數據交換是基於由 ORCID iD 持有人,以及個人授予成員組織的權限。
使用 API 和您的會員 API 客戶端憑據,您可以為每個 API 註冊一個回調 URL ORCID iD 您正在觀看的內容,當內容髮生變化時,我們會通知該回調 URL ORCID 記錄。
獲取 webhooks 訪問令牌
為了使用 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-remoded-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,我們將在五分鐘後重試呼叫。
取消註冊 Webhook
您可以從以下位置取消註冊 Webhook 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