-
edice Team, Professional, Business a Enterprise
S dotazy ohledně licencí se obraťte na prodejní oddělení.
Webhooky oznamují události externím službám, jako jsou chatovací klienty nebo externí API. Webhook může nastavit URL pro konkrétní událost.
Důležité
Nahrání souborů spouští pouze události webhooku uploads:create
a uploads:processing
.
Události keys:create
, keys:update
, translations:create
a translations:update
se nespouštějí nahráním souborů nebo automatickými importy prostřednictvím:
Pro historii webhooků je stanovena 30denní lhůta uchovávání.
Odpověď webhooku
Koncový bod webhooku musí do 5 sekund od přijetí zpětného volání vrátit stavový kód HTTP v rozsahu 200–299. Ostatní stavové kódy a vypršení časového limitu požadavku se považují za selhání. Webhook bude deaktivován, pokud se doručení nezdaří u více než 10 po sobě jdoucích událostí. Volání se neopakují.
Pokud obdržíte zpětné volání, odpovězte do 5sekundového časového limitu požadavku. Aby aplikace náhodou nespustily vypršení časového limitu, odložte zpracování na dobu po odeslání odpovědi HTTP.
Integrita požadavku webhooků
Každý požadavek webhooku obsahuje hlavičku X-PhraseApp-Signature
, která je vygenerována s využitím ověřovacího tokenu webhooku v podobě secretu spolu s daty zaslanými v požadavku. Ověřte původ požadavku výpočtem digestu HMAC těla požadavku a jeho porovnáním s hodnotou v hlavičce X-PhraseApp-Signature
.
Příklady:
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; }
Název události |
Popis |
---|---|
|
Byla vytvořena větev. |
|
Větev byla sloučena. |
|
Byl přidán komentář k překladovému klíči. |
|
Hodnota pole vlastních metadat byla aktualizována ve více klíčích. |
|
Na úrovni klíče byla aktualizována hodnota pole vlastních metadat. |
|
Zakázka byla označena jako Dokončená. |
|
Je vytvořena zakázka. |
|
Kód jazyka zakázky byl označen jako dokončený. |
|
Kód jazyka zakázky byl znovu otevřen. |
|
Kód jazyka zakázky byl zkontrolován a označen jako Dokončený. |
|
Kód jazyka zakázky byl zkontrolován a znovu otevřen. |
|
Zakázka byla znovu otevřena. |
|
Zakázka byla zahájena. |
|
Zakázka byla aktualizována. |
|
Několik klíčů bylo odstraněno. |
|
Byl vytvořen klíč. |
|
Klíč byl odstraněn. |
|
Klíč byl přejmenován nebo změněn. |
|
V projektu byla vytvořena nová verze jazyka. |
|
Verze jazyka byla odstraněna. |
|
Verze jazyka byla změněna, přejmenována nebo překonfigurována. |
|
Projekt byl změněn nebo rekonfigurován. |
|
Bylo vytvořeno vydání OTA. |
|
Vydání OTA bylo odstraněno. |
|
Byl vytvořen snímek obrazovky. |
|
Snímek obrazovky byl odstraněn. |
|
Snímek obrazovky byl změněn nebo přejmenován. |
|
Seznam překladů byl odstraněn. |
|
Seznam překladů byl zkontrolován. |
|
Seznam překladů nebyl zkontrolován. |
|
Seznam překladů byl neověřen. |
|
Seznam překladů byl ověřen. |
|
Byl přidán překlad klíče v určité jazykové verzi. |
|
Překlad klíče do určitého jazyka byl zajištěn poskytovatelem jazykových služeb. |
|
Byl zkontrolováno překlad klíč v určité jazykové verzi. |
|
Překlad klíče v určité jazykové verzi byl převeden na nezkontrolovaný. |
|
Překlad klíče v určité jazykové verzi byl přeceden na neověřený. |
|
Byl upraven překlad klíče v určité jazykové verzi. |
|
Byl ověřen překlad klíče v určité jazykové verzi. |
|
Byl úspěšně zpracován soubor kódu jazyka. |
|
Zpracovává se soubor kódu jazyka. |
Chcete-li přidat webhook, postupujte takto:
-
Na stránce na Konfigurovat.
přejděte dolů na a klikněteOtevře se stránka
. -
Klikněte na Přidat webhook.
Otevře se okno
. -
Zadejte podrobnosti o webhooku.
-
Volitelně
. -
Klikněte na Uložit. Zadaný webhook se přidá do seznamu na stránce
.
Webhook lze deaktivovat z nabídky
konkrétního webhooku.Testování webhooku:
-
Na stránce Odeslat zkušební oznámení.
vyberte webhook a z nabídky vyberteJe zobrazeno oznámení, že test byl úspěšný.
K zachycení obsahu webhooku použijte službu, jako je RequestBin. RequestBin poskytuje URL, která shromažďuje údaje o požadavcích ke kontrole.
Požadavek POST je odeslán na zadanou návratovou URL vždy, když dojde k události zadaného typu. Payload požadavku POST je kódovaný v JSON a obsahuje relevantní data pro danou událost. Atributy event
a message
budou vždy uvedeny spolu s dalšími atributy souvisejícími s událostí, jako je user, project a branch, ze kterých byl webhook spuštěn.
Hlavičky odpovědi
HTTP požadavky zaslané na návratovou URL budou obsahovat několik speciálních hlaviček.
-
X-PhraseApp-Event
: Typ události, která webhook spustila. -
X-PhraseApp-Signature
: Hexadecimální digest HMAC datového obsahu s použitím secret hooku jako klíče.
Příklad:
Content-Type: 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" } }