コンテンツへスキップ
ヘルプセンター

カテゴリ

ヘルプセンターを検索Ctrl K
このページの内容

Webhook で Drime Sign のイベントを受け取る

Drime Sign でドキュメントが送信、閲覧、署名、辞退、完了されたときにサーバーで HTTP 通知を受け取り、各リクエストが Drime から届いたものか確認します。

更新日 Web

Webhook を使うと、署名リクエストで何かが起こるたびに、Drime からサーバーにリクエストが送られます。各リクエストは JSON の POST で、シークレットで署名されているため、Drime から届いたものかどうかをサーバーで確認できます。

#Webhook を追加する

  1. 設定 > 開発者 > Webhook を開きます。

    Sign から開く場合は、環境設定をクリックして Webhook タブを開き、開発者設定を開くをクリックします。

  2. Webhook を追加をクリックします。

  3. エンドポイント URL に、リクエストを受け取るサーバーのアドレスを入力します。

  4. イベントで、受け取りたいイベントをそれぞれオンにして、Webhook を作成をクリックします。

    Webhook を作成しましたと表示されれば完了です。

  5. この時点でシークレットをコピーしてから、完了をクリックします。

    Webhook のシークレット:今すぐコピーしてくださいとあるとおり、シークレットは一度しか表示されません。安全な場所に保管してください。

新しい Webhook のダイアログ。デモサーバーのエンドポイント URL と、Drime Sign のイベント一覧が表示されている

#イベント

イベント

送信されるタイミング

envelope.sent

ドキュメントが署名に回されたとき

envelope.completed

すべての署名者が署名したとき

envelope.declined

署名者が辞退し、ドキュメントが辞退扱いになったとき

signer.viewed

署名者がドキュメントを開いたとき

signer.signed

署名者が署名したとき

signer.declined

署名者が辞退したとき

template.created

テンプレートが作成されたとき

#Drime から送られる内容

各リクエストには、次のヘッダーが含まれます。

  • X-Drime-Event:イベント(例:envelope.completed)

  • X-Drime-Delivery:配信の番号

  • X-Drime-Signature:sha256= に続けて、シークレットで計算した生のボディの HMAC SHA-256

JSON のボディには、event_type、event_uuid、timestamp、data(対象のドキュメントとその署名者)が含まれます。Webhook セクションのリクエストの例と署名の検証に、完全な例が表示されます。

同じ配信が複数回届くことがあります。event_uuid を使って、各イベントを1回だけ処理してください。

#署名を検証する

シークレットを使ってリクエストの生のボディの HMAC SHA-256 を計算し、X-Drime-Signature ヘッダーと比較します。Node.js の場合の例は次のとおりです。

import crypto from 'node:crypto';

function isFromDrime(rawBody, header, secret) {
  const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex');
  return header.length === expected.length && crypto.timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}

JSON として解析する前の、受け取ったままのボディを使ってください。

#配信をテスト・確認する

  • テスト送信でテストイベントを送信できます。テストイベントをキューに追加しました。配信ログをご確認くださいと表示されます。

  • 配信履歴には、各リクエストがステータス(成功、保留中、失敗)とともに一覧表示されます。再送信で配信をもう一度送信できます。

  • サーバーが応答しない場合やエラーを返した場合、Drime は約34時間にわたって最大10回まで再試行します。

  • オン/オフのスイッチで、Webhook を削除せずに一時停止できます。一時停止すると Webhook を一時停止しました、再び有効にすると Webhook を有効にしましたと表示されます。

#シークレットの変更と Webhook の削除

  • 鍵を再生成で新しいシークレットを作成します。アプリにシークレットを再生成しますか?現在のシークレットは直ちに使用できなくなります。 と警告が表示されます。すぐにサーバーの設定を更新してください。

  • 削除で Webhook を削除します。この Webhook とその配信履歴を削除しますか? と確認が表示されます。

#うまくいかない場合

表示される内容

対処方法

エンドポイント URL を入力してください

Webhook を作成する前に、サーバーのアドレスを入力してください。

イベントを少なくとも1つ有効にしてください

イベントでイベントを1つ以上選んでください。

配信が失敗のままになる

サーバーにインターネットからアクセスでき、成功を示すコードを返すことを確認してください。そのあと、再送信をクリックします。

サーバーで署名の検証に失敗する

解析した JSON ではなく生のボディで HMAC を計算し、現在のシークレットを使ってください。鍵を再生成のあとは、古いシークレットは使えません。

#次のステップ

この記事は役に立ちましたか?