DEVELOPER

有道翻译 API 开发者接入教程

从注册到调用,手把手教你接入有道翻译 API

有道翻译 API(有道智云翻译服务)面向开发者提供机器翻译相关接口,常见用途包括文本翻译、图片识别翻译、语音或文档处理等。具体能力、开通条件和计费方式会随控制台调整,接入前应先查看有道智云当前文档。

API 接入时重点核对三件事:当前支持的语言方向、接口调用方式、以及控制台显示的免费额度和超额计费。不要按旧文章里的语种数、免费字符数或单价做预算,开发前先用测试应用跑一小批真实文本。

🔑 注册与获取 API 密钥

使用有道翻译 API 前,需要先在有道智云平台注册并创建应用以获取 API 密钥:

1

注册有道智云账号

访问有道智云官网(ai.youdao.com),使用手机号或邮箱注册账号。已有网易账号的用户可直接登录。

2

创建应用

登录后进入控制台,点击「创建应用」,填写应用名称和描述,选择需要的服务类型(文本翻译、语音翻译等)。

3

获取密钥

应用创建成功后,系统会自动生成 App ID 和 App Key(密钥),在应用详情页面可以查看。请妥善保管密钥,不要泄露。

4

开始调用

使用 App ID 和 App Key 按照 API 文档的签名规则构造请求参数,即可开始调用翻译接口。

💻 API 调用方法

请求参数说明

有道翻译 API 的核心接口为文本翻译接口,请求地址为 https://openapi.youdao.com/api。主要请求参数包括:

Python 调用示例

以下是使用 Python 调用有道翻译 API 的完整代码示例:

import hashlib
import uuid
import time
import requests

YOUDAO_URL = 'https://openapi.youdao.com/api'
APP_KEY = '你的AppKey'
APP_SECRET = '你的AppSecret'

def translate(text, from_lang='auto', to_lang='zh-tw'):
    salt = str(uuid.uuid4())
    curtime = str(int(time.time()))
    sign_str = APP_KEY + truncate(text) + salt + curtime + APP_SECRET
    sign = hashlib.sha256(sign_str.encode('utf-8')).hexdigest()

    params = {
        'q': text,
        'from': from_lang,
        'to': to_lang,
        'appKey': APP_KEY,
        'salt': salt,
        'sign': sign,
        'signType': 'v3',
        'curtime': curtime,
    }
    response = requests.post(YOUDAO_URL, data=params)
    return response.json()

def truncate(text):
    if len(text) <= 20:
        return text
    return text[:10] + str(len(text)) + text[-10:]

result = translate('有道翻译是一款很好用的翻译软件')
print(result['translation'])

Node.js 调用示例

const crypto = require('crypto');
const axios = require('axios');
const { v4: uuidv4 } = require('uuid');

const APP_KEY = '你的AppKey';
const APP_SECRET = '你的AppSecret';
const API_URL = 'https://openapi.youdao.com/api';

function truncate(q) {
  if (q.length <= 20) return q;
  return q.substring(0, 10) + q.length + q.substring(q.length - 10);
}

async function translate(text, from = 'auto', to = 'en') {
  const salt = uuidv4();
  const curtime = Math.round(Date.now() / 1000).toString();
  const signStr = APP_KEY + truncate(text) + salt + curtime + APP_SECRET;
  const sign = crypto.createHash('sha256').update(signStr).digest('hex');

  const { data } = await axios.post(API_URL, null, {
    params: { q: text, from, to, appKey: APP_KEY, salt, sign, signType: 'v3', curtime }
  });
  return data;
}

translate('有道翻译API测试').then(res => console.log(res.translation));

💰 计费与套餐

有道翻译 API 的计费方式、免费额度和套餐价格会随产品策略调整。下面只保留开发者做预算时应该核对的项目,具体数字以有道智云当前文档和控制台显示为准:

语音翻译、图片翻译和文档翻译的计费方式有所不同,具体可参考有道智云官方文档。API 控制台提供了详细的用量统计和费用明细,方便开发者监控和管理用量。

💡 开发者建议

  • 密钥安全:不要将 App Key 和 App Secret 硬编码在前端代码或公开仓库中,建议使用环境变量或密钥管理服务
  • 请求限流:以当前控制台和 API 文档显示为准,建议在客户端添加请求队列和重试机制
  • 缓存策略:对于重复翻译的内容,建议在本地缓存翻译结果以减少 API 调用和费用
  • 错误处理:务必处理 API 返回的错误码(如 101 缺少参数、108 超频等),确保应用的稳定性
  • 批量翻译:如需翻译大量文本,建议合并请求(以当前 API 文档限制为准)以提高效率

❓ 常见问题

有道翻译 API 的响应速度如何?
响应速度取决于文本长度、网络环境、接口类型和调用区域。正式接入前,建议用自己的文本长度和并发量做压测,并查看有道智云当前文档中的服务等级和限流说明。
API 支持哪些编程语言?
有道翻译 API 是 HTTP 接口,常见后端语言通常都可以调用。SDK、示例代码和签名规则是否更新,应以有道智云当前文档中心为准。非官方示例只适合参考,不建议直接用于生产环境。
签名验证失败怎么排查?
签名验证失败(错误码 202)通常由以下原因导致:1)App Key 或 App Secret 复制时包含了多余的空格;2)签名字符串的拼接顺序不正确(正确顺序为 appKey + input + salt + curtime + appSecret);3)input 的 truncate 函数实现有误(当文本长度 > 20 时,取前10位 + 长度 + 后10位);4)curtime 不是当前时间戳。建议使用官方 SDK 中的签名函数进行验证。

开始接入有道翻译 API

接入前先核对当前控制台的接口、额度、计费和文档说明

⬇ 免费下载有道翻译