前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >百度翻译API接入

百度翻译API接入

作者头像
chuchur
发布2022-10-25 15:10:34
1.7K0
发布2022-10-25 15:10:34
举报
文章被收录于专栏:禅境花园禅境花园

注册开发者平台

注册之后顺利拿到APP ID和密钥

开通服务

开通服务之后才能使用对应的api, 这步必不可少。

接入

代码语言:javascript
复制
import axios from 'axios';
import CryptoJS from 'crypto-js'

let text = '要翻译的文字'
let appid = '123456789'  //开发者APP ID
let salt = Date.now().toString()
let key = 'abcdefghijklmn'; //开发者密钥

let sign = CryptoJS.MD5(appid + text + salt + key).toString()

axios({
  method:'post',
  headers:{
    'Content-Type':'application/x-www-form-urlencoded'
  },
  url:'https://fanyi-api.baidu.com/api/trans/vip/translate',
  q:text.toString(CryptoJS.enc.Utf8),
  from:'auto',
  to:'en',
  salt,
  sign
}).then(res=>{
  console.log(res)
  //output 
  /*
  {
    "from": "zh",
    "to": "en",
    "trans_result": [
      {
        "src": "要翻译的文字",
        "dst": "Text to be translated"
      }
    ]
  }
  */
}).catch(e=>{

})

问题

52003 未授权用户

没有开通对应的服务, 开通服务即可。(第二步)

54001 签名错误

先试试翻译英文,看看能否正确翻译。

  • 如果使用 get 请求, q 字段需要 做 URL encode 即: encodeURI(q)
  • 如果使用 post 请求,需要改两处: 1) headers 增加 'Content-Type''application/x-www-form-urlencoded' 2) q 字段进行 Utf8转码

按照文档 提示 :如遇到报 54001 签名错误,请检查您的签名生成方法是否正确,在对 sign 进行拼接和加密时,q 不需要做 URL encode,很多开发者遇到签名报错均是由于拼接 sign 前就做了 URL encode;

让人看成了,签名之后要做 URL encode,感觉误导。所以折腾成这样

代码语言:javascript
复制
let text = '要翻译的文字'

axios({
  method: 'post',
  ...
  url: 'https://fanyi-api.baidu.com/api/trans/vip/translate',
  q: encodeURI(text), //❎ 错误的方法
  ...
})

encodeURI 会进行转码,api无识别。导致签名错误。

代码语言:javascript
复制
let test = encodeURI('要翻译的文字')
console.log(test)
// output
// '%E8%A6%81%E7%BF%BB%E8%AF%91%E7%9A%84%E6%96%87%E5%AD%97'

正确的姿势是进行uft8转码, 而不是url 转码:

代码语言:javascript
复制
import CryptoJS from 'crypto-js'

let test = encodeURI('要翻译的文字')
test = test.toString(CryptoJS.enc.Utf8) // ✅

console.log(test)
// output utf8 code
// '要翻译的文字'
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 注册开发者平台
  • 开通服务
  • 接入
  • 问题
    • 52003 未授权用户
      • 54001 签名错误
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档