ウェブフックは、チャットクライアントやその他の外部APIなどの外部サービスにイベントを通知します。ウェブフックは、特定のイベントが発生したときに URL を設定できます。
File uploads only trigger the uploads:作成
および uploads:処理
ウェブフック イベント。
ウェブフック履歴には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 end
PHP
function verify_webhook($signatureheader){ $hmac = hash_hmac('sha256', $requestBody, $verificationToken, true); $hmac = trim(base64_encode($hash)); return $hmac == $signatureheader; }
イベント名 |
概要 |
---|---|
|
ブランチが作成されました。 |
|
ブランチがマージされました。 |
|
翻訳キーのコメントが追加されました。 |
|
カスタムメタデータフィールドの値が複数のキーで更新されました。 |
|
カスタムメタデータフィールドの値がキーで更新されました。 |
|
ジョブが完了済になりました。 |
|
ジョブが作成されました。 |
|
ジョブのロケールが完了済になりました。 |
|
ジョブのロケールが再度開かれました。 |
|
ジョブのロケールがレビュー済かつ完了済になりました。 |
|
ジョブのロケールがレビュー済かつ再度開かれました。 |
|
ジョブが再度開かれました。 |
|
ジョブが開始されました。 |
|
ジョブが更新されました。 |
|
複数のキーが削除されました。 |
|
キーが作成されました。 |
|
キーが削除されました。 |
|
キーが名前または変更されました。 |
|
新しい言語バージョンがプロジェクトで作成されました。 |
|
言語バージョンが削除されました。 |
|
言語バージョンが変更、名前変更、または再設定されました。 |
|
OTAリリースが作成されました。 |
|
OTAリリースは削除されました。 |
|
スクリーンショットを作成しました。 |
|
スクリーンショットが削除されました。 |
|
スクリーンショットが変更または名前変更されました。 |
|
翻訳の一覧がレビュー済されました。 |
|
翻訳の一覧が未レビューです。 |
|
翻訳の一覧が未検証です。 |
|
翻訳の一覧は検証済みです。 |
|
特定の言語バージョンのキーの翻訳が追加されました。 |
|
特定の言語バージョンのキーの翻訳が言語サービスプロバイダによって納品されました。 |
|
特定の言語バージョンのキーの翻訳がレビュー済です。 |
|
特定の言語バージョンのキーの翻訳がレビューされていませんでした。 |
|
特定の言語バージョンのキーの翻訳が未検証です。 |
|
特定の言語バージョンのキーの翻訳が編集されました。 |
|
特定の言語バージョンのキーの翻訳が検証済みです。 |
|
ロケール ファイルが正常に処理されました。 |
|
ロケールファイルを処理しています。 |
ウェブフックの追加手順は、次のとおりです。
-
Configure]をクリックします。
ページから[ までスクロールし、[のページが開きます。
-
ウェブフック追加をクリックします。
ウィンドウが開きます。
-
ウェブフックの詳細を入力します。
-
オプションで
こともできます。 -
保存 をクリックします。指定したウェブフックが
ページの一覧に追加されます。
ウェブフックは、特定のウェブフックの
] メニューから無効化できます。ウェブフックをテストする
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":"Lead Developer", "created_at":"2015-01-28T09:52:53Z", "updated_at":"2015-01-28T09:52:53Z" }, "project": { "id": "abcd1234cdef1234abcd1234cdef1234", "name":"My Android Project", "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":"My translation", "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" } }