Phrase TMS API

Webhooks (TMS)

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

可用于

  • 团队、专业、商业、企业和软件 UI/UX 计划

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

Webhooks 是处理 HTTP POST 请求的任意 URL,允许通知第三方系统有关指定事件。

Phrase 监控 webhook 回调是否成功接收。如果 webhook 接收失败 3000 次,则会被停用,并向账户的管理员发送通知,失败情况会在 Webhooks 页面上的特定 webhook 上记录。重试机制最多可重试 10 次,重试之间的间隔计算最大值为 30 分钟。

可以通过选择单个 webhook 来禁用/启用 webhook、显示历史记录、进行测试或从 webhook 页面删除。历史记录 功能提供过去 14 天的调用概述,失败的 webhook 可以重放。

重要

通过 IP 地址白名单 Webhook 连接的功能已被弃用,已被 Webhook 安全令牌取代。

可以为以下事件选择 Webhook:

  • 工作状态已更改

  • 工作已创建

  • 工作已分配

  • 工作截止日期已更改

  • 工作源已更新

  • 工作目标已更新(指的是 更新目标 操作在 工作 上)

  • 连续工作已更新

  • 项目已创建

  • 项目状态已更改

  • 项目截止日期已更改

  • 项目模板已创建

  • 项目模板已更改

  • 项目模板已删除

  • 共享项目已分配

  • 项目元数据已更新

  • 预翻译完成

  • 分析已创建

  • 工作已删除

  • 项目已删除

  • 工作已导出

  • 工作未导出

  • Language AI 导入完成

  • Language AI 翻译完成

配置 Webhooks

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

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

    Webhooks页面已打开。

  2. 点击 添加 webhook新建

    创建新 webhook 页面打开。

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

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

  4. 选择事件。

  5. 点击 预览模式 以查看运行时的 webhook 响应。

  6. 点击 创建 webhook

    webhook 被添加到 Webhook 页面上的列表中。

Webhook 使用示例

一个名为 RequestBin 的网站将提供一个 URL,用于创建 webhook。

下次在账户中更改工作状态或创建工作时,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"
}

工作分配

{
"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

新建

新建

新建

已接受

已分配

已接受(由服务商)

已拒绝

DECLINED_BY_LINGUIST

已拒绝(由服务商)

已拒绝

REJECTED_BY_LINGUIST

已拒绝(由服务商)

已交付

已完成

已交付

已发邮件

已发邮件

已发邮件(由服务商)

已完成

COMPLETED_BY_LINGUIST

已完成(由服务商)

已取消

已取消

已取消

这篇文章有帮助吗?

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.