在as3项目中接入百度翻译Api

    最近项目中,需要做一个翻译功能要接入百度翻译的API 进行翻译,现将步骤整理如下:

  以下摘自百度官方文档:

HTTP接入文档

百度翻译API通过HTTP接口对外提供多语种互译服务。您只需要通过调用百度翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。


翻译API HTTP地址:

http://api.fanyi.baidu.com/api/trans/vip/translate

翻译API HTTPS地址:

https://fanyi-api.baidu.com/api/trans/vip/translate


您需要向该地址通过POST或GET方法发送下列字段来访问服务

字段名 类型 必填参数 描述 备注
q TEXT Y 请求翻译query UTF-8编码
from TEXT Y 翻译源语言 语言列表(可设置为auto)
to TEXT Y 译文语言 语言列表(不可设置为auto)
appid INT Y APP ID 可在管理控制台查看
salt INT Y 随机数  
sign TEXT Y 签名 appid+q+salt+密钥 的MD5值

签名是为了保证调用安全,使用MD5算法生成的一段字符串,生成的签名长度为 32位,签名中的英文字符均为小写格式


为保证翻译质量,请将单次请求长度控制在 6000 bytes以内。(汉字约为2000个)

扫描二维码关注公众号,回复: 119767 查看本文章

签名生成方法如下:

1、将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看)

按照 appid+q+salt+密钥 的顺序拼接得到字符串1。

2、对字符串1做md5,得到32位小写的sign。


注意:

1、请先将需要翻译的文本转换为UTF-8编码

2、在发送HTTP请求之前需要对各字段做URL encode

3、在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。

返回结果是json格式,包含以下字段:

字段名 类型 描述
from TEXT 翻译源语言
to TEXT 译文语言
trans_result MIXED LIST 翻译结果
src TEXT 原文
dst TEXT 译文

其中 trans_result 包含了 src 和 dst 字段。


例:将apple从英文翻译成中文:

请求参数:

q=apple

from=en

to=zh

appid=2015063000000001

salt=1435660288

平台分配的密钥: 12345678

生成sign:

>拼接字符串1

拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678

得到字符串1 =2015063000000001apple143566028812345678

>计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)

sign=md5(2015063000000001apple143566028812345678)

sign=f89f9594663708c1605f3d736d01d2d4

完整请求为:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4

也可以使用POST方法传送需要的参数。

错误码列表

当翻译结果无法正常返回时,请参考下表处理:

错误码 含义 解决方法
52000 成功  
52001 请求超时 重试
52002 系统错误 重试
52003 未授权用户 检查您的appid是否正确
54000 必填参数为空 检查是否少传参数
58000 客户端IP非法 检查您填写的IP地址是否正确
可修改您填写的服务器IP地址
54001 签名错误 请检查您的签名生成方法
54003 访问频率受限 请降低您的调用频率
58001 译文语言方向不支持 检查译文语言是否在语言列表里
54004 账户余额不足 前往管理控制台为账户充值
54005 长query请求频繁 请降低长query的发送频率,3s后再试
语言列表

源语言语种不确定时可设置为 auto,目标语言语种不可设置为 auto。

语言简写 名称
auto 自动检测
zh 中文
en 英语
yue 粤语
wyw 文言文
jp 日语
kor 韩语
fra 法语
spa 西班牙语
th 泰语
ara 阿拉伯语
ru 俄语
pt 葡萄牙语
de 德语
it 意大利语
el 希腊语
nl 荷兰语
pl 波兰语
bul 保加利亚语
est 爱沙尼亚语
dan 丹麦语
fin 芬兰语
cs 捷克语
rom 罗马尼亚语
slo 斯洛文尼亚语
swe 瑞典语
hu 匈牙利语
cht 繁体中文
vie 越南语

2.在接入时需要注意的:
在请求参数哪里的appid,q,salt,密匙等参数,要和加密时的拼接一致(就是要转ucode就都转)要不然会一直报54001签名不正确的错误。
原因是在数据传过去后百度会对签名进行解密并和我们传过去的参数作对比。

猜你喜欢

转载自blog.csdn.net/u010797947/article/details/53674336
今日推荐