統合機能

ウェブフック (Strings)

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

対象

  • Team、Professional、Business、Enterpriseプライズプラン

ライセンスに関する質問は、営業部門にお問い合わせください。

ウェブフックは、チャットクライアントやその他の外部APIなどの外部サービスにイベントを通知します。ウェブフックは、特定のイベントが発生したときにURLを設定できます。

ファイルのアップロードのみ アップロード:作成 および アップロード:ウェブフックイベントをトリガーします。

ウェブフック履歴には30日間の保存期間があります。

ウェブフック応答

ウェブフックエンドポイントは、コールバックを受け取ってから5秒以内に200〜299の範囲のHTTPステータスコードを返す必要があります。その他のステータスコードやリクエストタイムアウトは、配信の失敗と見なされます。ウェブフックは、10回以上連続して配信に失敗した場合、無効になります。コールバックは繰り返されません。

コールバックを受け取った場合は、5秒のリクエストタイムアウト時間内に応答してください。アプリケーションが誤ってタイムアウトを発生させないように、HTTPレスポンスが送信されるまで処理を延期してください。

ウェブフック要求の整合性

各ウェブフック要求には、X-PhraseApp-Signature ヘッダーが含まれます。このヘッダーは、要求で送信されたデータとともに、ウェブフック検証トークンをシークレットとして使用して生成されます。リクエストボディのHMACダイジェストを計算し、X-PhraseApp-Signatureヘッダーの値と比較することで、リクエストの送信元を検証。

例:

Ruby

def verify_webhook(signatureheader)
  digest = OpenSSL::Digest::Digest.new('sha256')
  hmac = OpenSSL::HMAC.digest(digest, VERIFICATION_TOKEN, request.body)
  hmac = Base64.encode64(hmac).strip
  hmac == signatureheader
終了

PHP

function verify_webhook($signatureheader){
  $hmac = hash_hmac('sha256', $requestBody, $verificationToken, true);
  $hmac = trim(base64_encode($hash));
  $hmac == $signatureheader;を返す
}

ウェブフックイベント

イベント名

概要

locales:create

プロジェクトに新しい言語バージョンが作成されました。

locales:update

言語バージョンが変更、名前変更、または再設定されました。

locales:delete

言語バージョンが削除されました。

uploads:create

ロケールファイルがアップロードされました。

uploads:processing

ロケールファイルが処理されました。

keys:create

キーが作成されました。

keys:update

キーが名前または変更されました。

keys:delete

キーが削除されました。

keys:batch_delete

複数のキーが削除されました。

translations:create

特定の言語バージョンのキーの翻訳が追加されました。

translations:update

特定の言語バージョンのキーの翻訳が編集されました。

translations:deliver

特定の言語バージョンのキーの翻訳が言語サービスプロバイダから納品されました。

translations:review

特定の言語バージョンのキーの翻訳がレビュー済です。

translations:unreview

特定の言語バージョンのキーの翻訳が未レビューになりました。

comments:create

翻訳キーのコメントが追加されました。

jobs:create

ジョブが作成されます。

jobs:complete

ジョブが完了としてマークされました。

jobs:start

ジョブが開始されました。

jobs:reopened

ジョブが再度開かれました。

jobs:update

ジョブが更新されました。

jobs:locale:complete

ジョブのロケールが完了済としてマークされました。

jobs:locale:reopened

ジョブのロケールが再度開かれました。

jobs:locale:review:complete

ジョブのロケールがレビュー済で完了とマークされました。

jobs:locale:review:reopen

ジョブのロケールがレビュー済で再度開かれました。

screenshots:create

スクリーンショットが作成されました。

screenshots:update

スクリーンショットが変更または名前変更されました。

screenshots:delete

スクリーンショットが削除されました。

branches:create

ブランチが作成されました。

branches:merge

ブランチがマージされました。

releases:create

OTAリリースが作成されました。

releases:delete

OTAリリースが削除されました。

ウェブフックの追加

ウェブフックを追加する手順は、次のとおりです。

  1. [Integrations]ページで、[Webhooks]までスクロールし、[Configure]をクリックします。

    Webhook ページが開きます。

  2. ウェブフック追加をクリックします。

    ウェブフック追加ウィンドウが開きます。

  3. ウェブフックの詳細を入力します。

  4. オプションでブランチを含めることもできます。

  5. 保存をクリックします。指定したウェブフックがウェブフックページの一覧に追加されます。

ウェブフックは、特定のウェブフックの[その他]メニューから無効化できます。

ウェブフックをテストする

ウェブフックをテストするには

  • [Webhooks]ページでウェブフックを選択し、[More]メニューから[Send Test-注意]を選択します。

    テストが成功したことを示す通知が表示されます。

RequestBinなどのサービスを使用してウェブフックの内容をキャプチャします。RequestBinは、検査用のリクエストデータを収集するURLを提供します。

ウェブフックデータの使用

POSTリクエストは、指定された種類のイベントが発生するたびに、指定されたコールバックURLに送信されます。リクエストのPOSTペイロードは、イベントの関連データを含むJSONエンコードされたドキュメントです。イベントメッセージの属性と、ウェブフックがトリガーされた ユーザー 、 プロジェクト 、ブランチ などのイベントに関連する追加の属性が常に含まれます。

Reponseヘッダー

コールバックURLに対するHTTPリクエストには、いくつかの特別なヘッダーが含まれます。

  • X-PhraseApp-Event:ウェブフックをトリガーしたイベントのタイプ。

  • X-PhraseApp-Signature:フックの秘密をキーとするペイロードのHMAC 16進ダイジェスト。

例:

コンテンツタイプ:application/json
X-PhraseApp-Event: translation:create
X-PhraseApp-Signature: abc123

{
  "event": "translations:create",
  "message":"Peter translated page.help.title in fr.",
  "user": {
    "id": "abcd1234cdef1234abcd1234cdef1234",
    "username": "joe.doe",
    "name":"Joe Doe",
    "email": "joe@phrase.com",
    "position":「リードデベロッパー」、
    "created_at":"2015-01-28T09:52:53Z",
    "updated_at":"2015-01-28T09:52:53Z"
  },
  "project": {
    "id": "abcd1234cdef1234abcd1234cdef1234",
    "name":"マイAndroidプロジェクト",
    "main_format": "xml",
    "project_image_url": "http://assets.phrase.com/project.png",
    "account": "account",
    "created_at":"2015-01-28T09:52:53Z",
    "updated_at":"2015-01-28T09:52:53Z"
  },
  "branch": {
  "name": "branch_name"
  },
  "translation": {
    "id": "abcd1234cdef1234abcd1234cdef1234",
    "content":「私の翻訳」、
    "unverified": false,
    "excluded": false,
    "plural_suffix": "",
    "key": {
      "id": "abcd1234cdef1234abcd1234cdef1234",
      "name": "home.index.headline",
      "plural": false
    },
    "locale": {
      "id": "abcd1234cdef1234abcd1234cdef1234",
      "name": "de",
      "code": "de-DE"
    },
    "placeholders": [
      "%{count}"
    ],
    "created_at":"2015-01-28T09:52:53Z",
    "updated_at":"2015-01-28T09:52:53Z"
  }
}

Slack統合機能でウェブフックを使用

Slack は一元化されたTeamコミュニケーションのためのプラットフォームです。Slackは、タイムリーで関連性が高く、検索可能な方法で、外部のツールから情報やアクティビティを自動的にSlackに取り込む インテグレーション を提供しています。

Slackプラグインを使用しない場合は、ウェブフックを手動でセットアップして統合機能を提供できます。

ウェブフックで生成された通知をSlackチャンネルに統合するには、Slack内で受信ウェブフック設定してウェブフックURLを取得します。このウェブフックURLは、ウェブフックのコールバックURLとして設定できます。

POSTリクエストは、指定された種類のイベントが発生するたびに、提供されたURLに送信されます。リクエストのPOSTペイロードは JSONエンコードされたドキュメントで、Slackは指定されたチャネルのイベントの短い説明を表示するために使用できます。

ペイロードの例:

{
  "text":"Andreがプロジェクト内の翻訳を更新しました: 'マイプロジェクト'",
  "username":"PhraseApp"
}
この記事は役に立ちましたか?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.