Phrase TMS API

webhook (TMS)

文本由 Phrase Language AI 从英语机器翻译而得。

可用于

  • Team、Professional、Business、Enterprise 和 Software UI/UX 计划

关于许可问题,请联系销售团队

webhook 是处理 HTTP POST 请求的任意 URL,允许将指定事件的通知发送给第三方系统。

Phrase 会监控 webhook 回调是否成功接收。如果 webhook 接收失败 3000 次,它将被停用,并向账户管理员发送通知,且该失败记录会显示在webhook页面的特定 webhook 上。重试机制最多有 10 次重试机会,重试间隔计算最长为 30 分钟。

可以通过在 webhook 页面选择单个 webhook 来显示工具栏,从而禁用/启用、显示历史记录、测试或删除 webhook。历史记录功能提供了过去 14 天的调用概览,并且可以重放失败的 webhook。

重要

通过 IP 地址对 webhook 连接进行白名单限制已被弃用,并已由 webhook 安全令牌取代。

可以为以下事件选择 webhook:

  • Job status changed

  • 工作已创建

  • Job assigned

  • 工作截止日期已更改

  • 工作原文已更新

  • 工作译文已更新(指工作上的更新译文操作)

  • 连续工作已更新

  • 项目已创建

  • 项目状态已更改

  • 项目截止日期已更改

  • 项目模板已创建

  • 项目模板已更改

  • 项目模板已删除

  • Shared project assigned

  • 项目元数据已更新

  • 预翻译完成

  • 分析报告已创建

  • 工作已删除

  • 项目已删除

  • 已导出的工作

  • 未导出的工作

  • Language AI 导入已完成

  • Language AI 翻译已完成

配置 webhook

要配置 webhook,请按照以下步骤操作:

  1. 从设置Setup_gear.png页面,下拉到集成部分并点击webhook

    webhook页面打开。

  2. 点击添加 webhook新建

    创建新 webhook页面打开。

  3. 提供名称、URL 和(如果需要)安全令牌。

    指定一个值以包含在 x-memsource-token 标头或 Authorization 标头中,该值允许用户选择其首选的 webhook 发送方身份验证方法。

  4. 选择活动。

  5. 单击 预览架构 以查看运行时的 webhook 响应视图。

  6. 单击 创建 webhook

    该 webhook 已添加到 webhook 页面上的列表中。

webhook 使用示例

一个名为 RequestBin 的网站将提供一个在创建 webhook 时使用的 URL。

下一次在账户中更改工作状态或创建工作时,该 URL 将从系统接收相应的响应。实际使用可能更为复杂,接收响应应被视为连接的应用程序执行某些操作的信号。

活动

工作状态更改、工作分配、工作创建以及工作截止日期更改的示例。

工作状态已更改

{
"jobParts": [
  {
    "id": 9,
    "uid": "ipmdz5p0sagqcOYaijTZU2",
    "internalId": "4",
    "task": "SEfSaenvqFgctE1I0_dc1",
    "fileName": "en.txt",
    "targetLang": "af",
    "workflowLevel": 1,
    "status": "NEW",
    "wordsCount": 2,
    "beginIndex": 0,
    "endIndex": 1,
    "isParentJobSplit": false,
    "dateDue": null,
    "dateCreated": "2016-11-02T17:06:54Z",
    "project": {
      "id": 2,
      "uid": "4RvyVbwX00KerkomA7kpT9",
      "lastWorkflowLevel": 1
    },
    "assignedTo": [
      {
        "vendor": {
          "id": 1,
          "name": "Abc",
          "vendorToken": "4-ifos0-CAqPo"
        }
      },
      {
        "linguist": {
          "id": 3,
          "firstName": "Admin",
          "lastName": "Admin",
          "userName": "admin",
          "email": "admin@example.com",
          "role": "ADMIN",
          "timezone": "Europe/London",
          "active": true,
          "deleted": false,
          "terminologist": false,
          "dateCreated": "2016-10-11T07:43:22Z"
        }
      }
    ]
  }
],
"event": "JOB_STATUS_CHANGED"
}

Job Assigned

{
"jobParts": [
  {
    "id": 9,
    "uid": "ipmdz5p0sagqcOYaijTZU2",
    "internalId": "4",
    "task": "SEfSaenvqFgctE1I0_dc1",
    "fileName": "en.txt",
    "targetLang": "af",
    "workflowLevel": 1,
    "status": "NEW",
    "wordsCount": 2,
    "beginIndex": 0,
    "endIndex": 1,
    "isParentJobSplit": false,
    "dateDue": null,
    "dateCreated": "2016-11-02T17:06:54Z",
    "project": {
      "id": 2
      "uid": "4RvyVbwX00KerkomA7kpT9",
      "lastWorkflowLevel": 1
    },
    "assignedTo": [
      {
        "vendor": {
          "id": 1,
          "name": "Abc",
          "vendorToken": "4-ifos0-CAqPo"
        }
      },
      {
        "linguist": {
          "id": 3,
          "firstName": "Admin",
          "lastName": "Admin",
          "userName": "admin",
          "email": "admin@example.com",
          "role": "ADMIN",
          "timezone": "Europe/London",
          "active": true,
          "deleted": false,
          "terminologist": false,
          "dateCreated": "2016-10-11T07:43:22Z"
        }
      }
    ]
  }
],
"event": "JOB_ASSIGNED"
}

工作已创建

{
 "jobParts": [
   {
     "id": 9,
     "uid": "ipmdz5p0sagqcOYaijTZU2",
     "internalId": "4",
     "task": "SEfSaenvqFgctE1I0_dc1",
     "fileName": "en.txt",
     "targetLang": "af",
     "workflowLevel": 1,
     "status": "NEW",
     "wordsCount": 2,
     "beginIndex": 0,
     "endIndex": 1,
     "isParentJobSplit": false,
     "dateDue": null,
     "dateCreated": "2016-11-02T17:06:54Z",
     "project": {
       "id": 2,
       "uid": "4RvyVbwX00KerkomA7kpT9",
       "lastWorkflowLevel": 1
     },
     "assignedTo": [
       {
         "vendor": {
           "id": 1,
           "name": "Abc",
           "vendorToken": "4-ifos0-CAqPo"
         }
       },
       {
         "linguist": {
           "id": 3,
           "firstName": "Admin",
           "lastName": "Admin",
           "userName": "admin",
           "email": "admin@example.com",
           "role": "ADMIN",
           "timezone": "Europe/London",
           "active": true,
           "deleted": false,
           "terminologist": false,
           "dateCreated": "2016-10-11T07:43:22Z"
         }
       }
     ]
   }
 ],
 "event": "JOB_CREATED"
}

工作截止日期已更改

{
  "jobParts": [
    {
      "id": 127865777,
      "uid": "ElTXvXnNIHEN2xgL5sU2L2",
      "internalId": "1",
      "task": "LvkAHilgobApeoVm_dc4",
      "fileName": "EU White Paper Edited.doc",
      "targetLang": "de",
      "workflowLevel": 1,
      "status": "NEW",
      "wordsCount": 204,
      "beginIndex": 0,
      "endIndex": 16,
      "isParentJobSplit": false,
      "dateDue": "2018-09-11T22:00:00Z",
      "dateCreated": "2018-09-10T06:25:41Z",
      "project": {
        "id": 12277756,
        "uid": "4RvyVbwX00KerkomA7kpT9
        "lastWorkflowLevel": 1
      },
      "assignedTo": []
    }
  ],
  "event": "JOB_DUE_DATE_CHANGED"
}

状态列表

在使用 API、webhook 和 UI 时,状态的命名可能会略有不同。

Rest API

Webhook

UI

NEW

NEW

新建

ACCEPTED

ASSIGNED

已接受(由服务商)

DECLINED

DECLINED_BY_LINGUIST

已拒绝(由服务商)

REJECTED

REJECTED_BY_LINGUIST

已驳回(由服务商)

DELIVERED

COMPLETED

已交付

EMAILED

EMAILED

已发邮件(由服务商)

COMPLETED

COMPLETED_BY_LINGUIST

已完成(由服务商)

CANCELLED

CANCELLED

CANCELLED

这篇文章有帮助吗?

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.