Skip to main content

Webhook

Webhookを使用すると、何かが発生した瞬間にVoiceCheapがサーバーに通知できるため、ポーリングを停止できます GET /v1/translate/{projectId}/status.
配信は1回試行されます。現時点では再試行機能がないため、安全策としてポーリングを継続してください。 見逃せない情報については特に注意が必要です。指数バックオフを用いた再試行機能は今後実装予定です。

セットアップ

  1. VoiceCheapアカウントでAPIページを開きます。
  2. Webhooksで、Generate signing secretを選択します。シークレットはwhsec_で始まり、表示されるのは 1回のみです。コピーしてサーバーに保存してください。
  3. endpoint URLを入力して保存します。httpsを使用する必要があります。
以上です。それ以降に開始するすべてのプロジェクトは、そのエンドポイントにイベントを送信します。

リクエストごとにエンドポイントを上書きする

POST /v1/translateおよびPOST /v1/projectsは、オプションのwebhookUrlフィールドを受け入れます。これは、 そのプロジェクトのアカウントエンドポイントのみを上書きします。ステージングトラフィックを別の場所に送信する場合に便利です。
署名シークレットは常にアカウントシークレットであり、送信先のみが変更されます。

イベント

個別の文字起こしイベントはありません。文字起こしはプロジェクト作成時に実行され、プロジェクトは 文字起こしが保存された時点で初めて存在するため、project.createdはすでに文字起こしが POST /v1/projects/{projectId}/transcriptで取得する準備ができました。

ペイロード

すべての配信は、JSONボディを含むPOSTです:
ペイロードは意図的に軽量化されています。コンテンツそのものについてはREST APIを呼び出してください。

署名の検証

すべての配信には以下のヘッダーが含まれます: 署名は <timestamp>.<raw body> をカバーしているため、配信ごとに異なり、以下の両方を証明します。 リクエストが VoiceCheap から送信されたこと、および転送中に本文が改ざんされていないこと。
配信を信頼する前に署名を検証してください。エンドポイントはパブリックURLであり、署名は 本物の VoiceCheap イベントと、そこに到達する他のあらゆるものとを区別するものです。

応答

2xxステータスで応答して確認してください。10秒以内に回答してください。処理を先に行うのではなく、まず確認の応答を返してから作業を行ってください。 処理を先に行うのではなく、まず確認の応答を返してから作業を行ってください。 2xx以外の応答またはタイムアウトは配信失敗として記録され、現時点では再試行されません。

シークレットのローテーション

APIページでRotateを選択して、新しいシークレットを生成します。以前のシークレットは 直ちに機能しなくなるため、ローテーション後は速やかに新しいシークレットをサーバーにデプロイしてください。 Webhookを削除すると、エンドポイントとシークレットの両方が削除され、配信が停止します。