통합

Webhooks (Strings)

컨텐츠는 영어 텍스트를 Phrase Language AI를 이용해 기계 번역한 것입니다.

사용 가능:

  • 팀, 전문, 비즈니스, 기업 및 소프트웨어 UI/UX 계획

라이선스에 관한 질문은 영업팀에 문의하십시오.

웹 후크는 채팅 클라이언트 또는 기타 외부 API와 같은 외부 서비스에 이벤트를 알립니다. 웹 후크는 특정 이벤트가 발생할 때 URL을 설정할 수 있습니다.

중요 사항

파일 업로드는 업로드:생성업로드:처리 웹 후크 이벤트만 트리거합니다.

키:생성, 키:업데이트, 번역:생성번역:업데이트 웹 후크 이벤트는 파일 업로드 또는 자동 가져오기에 의해 트리거되지 않습니다:

웹 후크 기록에 대한 보존 기간은 30일입니다.

웹 후크 응답

웹 후크 엔드포인트는 콜백을 수신한 후 5초 이내에 200–299 범위의 HTTP 상태 코드를 반환해야 합니다. 기타 상태 코드 및 요청 시간 초과는 배달 실패로 간주됩니다. 배달이 10개 연속 이벤트 이상 실패하면 웹 후크가 비활성화됩니다. 콜백은 반복되지 않습니다.

콜백을 수신하는 경우 5초 요청 시간 초과 기간 내에 응답하십시오. 응용 프로그램이 우연히 시간 초과를 트리거하지 않도록 HTTP 응답이 전송된 후에 처리를 연기하십시오.

웹 후크 요청 무결성

각 웹 후크 요청에는 요청에서 전송된 데이터와 비밀로 웹 후크 검증 토큰을 사용하여 생성된 X-PhraseApp-Signature 헤더가 포함됩니다. 요청 본문의 HMAC 다이제스트를 계산하고 이를 X-PhraseApp-Signature 헤더의 값과 비교하여 요청 출처를 확인하십시오.

예:

루비

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;
}

웹후크 이벤트

각 웹후크 페이로드의 구조는 https://app.phrase.com/webhook_schemas/<event_underscored_name>.json에 정의된 스키마 파일에 있습니다. 여기서 <event_underscored_name>는 언더스코어가 있는 웹후크 이벤트의 이름에 해당합니다.

branches:createhttps://app.phrase.com/webhook_schemas/branches_create.json를 통해 접근할 수 있습니다.

이벤트 이름

설명

branches:create

분기가 생성되었습니다.

branches:merge

분기가 병합되었습니다.

comments:create

번역 키에 대한 주석이 추가되었습니다.

custom_metadata_values:batch_update

사용자 지정 메타데이터 필드 값이 여러 키에서 업데이트되었습니다.

custom_metadata_values:update

사용자 지정 메타데이터 필드 값이 키 수준에서 업데이트되었습니다.

jobs:complete

작업이 완료로 표시되었습니다.

jobs:create

작업이 생성되었습니다.

jobs:locale:complete

작업의 로캘이 완료로 표시되었습니다.

jobs:locale:reopened

작업의 로캘이 다시 열렸습니다.

jobs:locale:review:complete

작업의 로캘이 검토되었고 완료로 표시되었습니다.

jobs:locale:review:reopen

작업의 로캘이 검토되었고 다시 열렸습니다.

jobs:reopened

작업이 다시 열렸습니다.

jobs:start

작업이 시작되었습니다.

jobs:update

작업이 업데이트되었습니다.

keys:batch_delete

여러 키가 삭제되었습니다.

keys:create

키가 생성되었습니다.

keys:delete

키가 삭제되었습니다.

키:태그:일괄_생성

여러 키에 태그가 추가되었습니다.

키:태그:생성

키에 태그가 추가되었습니다.

keys:update

키가 이름이 변경되거나 수정되었습니다.

locales:create

프로젝트에서 새로운 언어 버전이 생성되었습니다.

locales:delete

언어 버전이 삭제되었습니다.

locales:update

언어 버전이 변경되거나 이름이 변경되었거나 재구성되었습니다.

project:update

프로젝트가 변경되거나 재구성되었습니다.

releases:create

OTA 릴리스가 생성되었습니다.

releases:delete

OTA 릴리스가 삭제되었습니다.

screenshots:create

스크린샷이 생성되었습니다.

screenshots:delete

스크린샷이 삭제되었습니다.

screenshots:update

스크린샷이 변경되거나 이름이 변경되었습니다.

translations:batch_delete

번역 목록이 삭제되었습니다.

번역:일괄_포함

번역 목록이 포함되었습니다.

translations:batch_review

번역 목록이 검토되었습니다.

translations:batch_unreview

번역 목록이 검토되지 않았습니다.

translations:batch_unverify

번역 목록이 확인되지 않았습니다.

translations:batch_verify

번역 목록이 확인되었습니다.

translations:create

특정 언어 버전의 키 번역이 추가되었습니다.

translations:deliver

특정 언어 버전의 키 번역이 언어 서비스 공급자에 의해 전달되었습니다.

translations:exclude

특정 언어 버전의 키 번역이 제외되었습니다.

translations:include

특정 언어 버전의 키 번역이 포함되었습니다.

translations:review

특정 언어 버전의 키 번역이 검토되었습니다.

translations:unreview

특정 언어 버전의 키 번역이 검토되지 않았습니다.

translations:unverify

특정 언어 버전의 키 번역이 확인되지 않았습니다.

translations:update

특정 언어 버전의 키 번역이 수정되었습니다.

translations:verify

특정 언어 버전의 키 번역이 확인되었습니다.

uploads:create

로캘 파일이 성공적으로 처리되었습니다.

uploads:processing

로캘 파일이 처리되고 있습니다.

웹 후크 추가

웹 후크를 추가하려면 다음 단계를 따르십시오:

  1. 통합 페이지에서 아래로 스크롤하여 웹 후크를 클릭하고 구성을 클릭하십시오.

    웹 후크 페이지가 열립니다.

  2. 웹 후크 추가을 클릭하십시오.

    웹 후크 추가 창이 열립니다.

  3. 웹 후크 세부정보를 제공합니다.

  4. 선택적으로 브랜치 포함합니다.

  5. 저장을 클릭합니다. 지정된 웹 후크가 웹 후크 페이지의 목록에 추가됩니다.

특정 웹 후크의 더보기 메뉴에서 웹 후크를 비활성화할 수 있습니다.

웹 후크 테스트하기

웹 후크를 테스트하려면:

  • 웹 후크 페이지에서 웹 후크를 선택하고 테스트 알림 전송더보기 메뉴에서 선택합니다.

    테스트가 성공적이었다는 알림이 표시됩니다.

웹 후크의 내용을 캡처하기 위해 RequestBin과 같은 서비스를 사용합니다. RequestBin은 요청 데이터를 수집하여 검사할 수 있는 URL을 제공합니다.

웹 후크 데이터 사용하기

지정된 유형의 이벤트가 발생할 때마다 지정된 콜백 URL로 POST 요청이 전송됩니다. 요청의 POST 페이로드는 이벤트에 대한 관련 데이터가 포함된 JSON 인코딩 문서입니다. 속성 event, messagesent_at는 항상 포함되며, 웹 후크가 트리거된 이벤트와 관련된 추가 속성인 사용자, 프로젝트브랜치도 포함됩니다.

응답 헤더

콜백 URL로 전송된 HTTP 요청에는 여러 개의 특수 헤더가 포함됩니다.

  • X-PhraseApp-Event: 웹 후크를 트리거한 이벤트의 유형입니다.

  • X-PhraseApp-Signature: 페이로드의 HMAC 헥스 다이제스트로, 후크의 비밀을 키로 사용합니다.

예:

Content-Type: application/json
X-PhraseApp-Event: translation:create
X-PhraseApp-Signature: abc123

{
  "event": "translations:create",
  "message": "피터는 page.help.title을 프랑스어로 번역했습니다.",
  "sent_at": "2015-01-29T09:52:53Z"   
  "user": {
    "id": "abcd1234cdef1234abcd1234cdef1234",
    "username": "joe.doe",
    "name": "조 도우",
    "email": "joe@phrase.com",
    "position": "수석 개발자",
    "created_at": "2015-01-28T09:52:53Z",
    "updated_at": "2015-01-28T09:52:53Z"
  },
  "project": {
    "id": "abcd1234cdef1234abcd1234cdef1234",
    "name": "내 안드로이드 프로젝트",
    "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"
  }
}
도움이 되었습니까?

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.