このチュートリアルでは、Webhookをセットアップしてテストするための個々の手順について説明します。 ORCID 記録。
Webhookの変更通知は ORCID 内の公開データがアプリケーションに通知されることを可能にするプレミアムメンバー機能 ORCID 変更を記録します。 この機能により、プレミアムメンバーは新しい情報を最新の状態に保つことができ、アクティビティに基づいて独自のシステムでイベントをトリガーすることもできます。 実際のデータ交換は、によって設定されたプライバシーレベルに基づいていることに注意してください ORCID iD 所有者、および個人がメンバー組織に付与した権限。
APIとメンバーAPIクライアントのクレデンシャルを使用して、それぞれのコールバックURLを登録できます ORCID iD あなたが見ていること、そして変更が発生したときにそのコールバックURLを通知します ORCID 記録。
Webhookアクセストークンを取得する
Webhook機能を使用するには、Webhookを作成できるアクセストークンを生成する必要があります。 このプロセスはXNUMX回だけ完了する必要があり、同じアクセストークンを使用して複数のWebhookを作成できます。 ORCID レコード。
プレミアムメンバーなら誰でも「/webhook」アクセストークンを取得できます。 XNUMX つのトークンを使用して、複数のレコードの 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"}
Webhookを登録する
Webhookアクセストークンを取得すると、Webhookの登録を開始できるようになります。 あなたはに対してウェブフックを登録することができます ORCID iD 機能はユーザーが利用できる公開データのみを参照しているため、ユーザーの許可なしに ORCID 記録。
Webhookは、プレミアムメンバーが誰に対しても登録できます。 ORCID レジストリに記録します。手順は次のとおりです。
URLをエンコードします
URL-必要なURLをエンコードします ORCID ユーザーのレコードが更新されたときに呼び出す。 たとえば、次の URL です。
https://nowhere2.com/0000-0002-7465-2162/updated
になる
https%3A%2F%2Fnowhere2.com%2F0000-0002-7465-2162%2Fupdated
URLを作成する
の完全なURLを作成します ORCID のURLで始まるAPI呼び出し ORCID 記録し、‚√∫/webhook‚√π と呼び出したい URL を追加します。つまり、https://api.sandbox.orcid.org/{ のようになります。ORCID} / webhook / {URL-ENCODED-WEBHOOK-URL}
たとえば、上記のWebhookURLと ORCID iD 0000-0002-7465-2162、完全なURLは次のとおりです。
https://api.sandbox.orcid.org/0000-0002-7465-2162/webhook/https%3A%2F%2Fnowhere2.com%2F0000-0002-7465-2162%2Fupdated
Webhookを登録する
Webhook のアクセス トークンを使用して、ユーザーに対して 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 レコードが更新されます。 フック通知はXNUMX分ごとに送信されるため、XNUMXつのユーザーセッションで複数の呼び出しが発生することはありません。
この ORCID レコードが更新されると、レジストリは次のHTTP呼び出しを実行します。 リクエストはHTTPPOSTメソッドを使用しますが、リクエストの本文は空です。
curl -v -X POST https://nowhere2.com/0000-0002-7253-3645/updated
サーバーは、標準のHTTP応答コードで応答する必要があります。 したがって、呼び出しが成功した場合は、204 NoContentを返す必要があります。
HTTP/1.1 204 No Content
2xx応答コードは、呼び出しが成功したことを意味します。 2xx以外のコードを返した場合は、XNUMX分後に通話を再試行します。
Webhookの登録を解除する
Webhookの登録を解除できます ORCID iD 自分のシステム内のデータをその特定のものと同期させたくない場合 ORCID.
Webhookの登録を解除するためのURLは、登録するためのURLと同じです。 ただし、HTTPDELETEメソッドを使用する必要があります。
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