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

百度翻译api调试

作者头像
biaoblog.cn 个人博客
发布2022-11-11 19:01:48
1.3K0
发布2022-11-11 19:01:48
举报
文章被收录于专栏:web技术开发分享

最近有了翻译的需求,

想用node进行一波封装,

发现百度翻译api个人认证之后每个月有100万字符的免费额度,

足够我使用了,废话不多说 直接开搞

文档地址:http://api.fanyi.baidu.com/product/113

然后是我自己随便封装的(node环境)

先下载俩包axios(请求需要)和md5(翻译参数需求)

代码语言:javascript
复制
npm i md5 axios -S

然后就是具体的代码,我封装了一个promise来批量处理的

代码语言:javascript
复制
const md5 = require("md5");
const axios = require("axios");

// 请求参数:
//      q=apple
//      from=en
//      to=zh
//      appid=2015063000000001(请替换为您的appid)
//      salt=1435660288(随机码)
//      平台分配的密钥: 12345678
// 生成签名sign:
// Step1. 拼接字符串1:
// 拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678得到字符串1:“2015063000000001apple143566028812345678”
// Step2. 计算签名:(对字符串1做MD5加密)
// sign=MD5(2015063000000001apple143566028812345678),得到sign=f89f9594663708c1605f3d736d01d2d4

const setUrl = (q, from, to) => {
  let appid = "你的appid";
  let appKey = "你的app密钥";
  let salt = Date.now();
  let sign = md5(appid + q + salt + appKey);
  let url = `http://api.fanyi.baidu.com/api/trans/vip/translate?q=${q}&from=${from}&to=${to}&appid=${appid}&salt=${salt}&sign=${sign}`;
  return url;
};

const translater = () => {
  return new Promise((resolve) => {
    let url = setUrl("test", "auto", "zh");
    axios
      .get(url)
      .then((res) => {
        console.log(res.data);
        resolve(res.data);
      })
      .catch((err) => {
        //这里异常也使用resolve抛出不然会进程阻塞 看具体需求进行改变
        resolve(res.data);
      });
  });
};

translater();
 sign=MD5(2015063000000001apple143566028812345678),得到sign=f89f9594663708c1605f3d736d01d2d4

let setUrl = (q, from, to) => {
  let appid = "你的appid";
  let appKey = "你的api密匙";
  let salt = Date.now();
  let sign = md5(appid + q + salt + appKey);
  let url = `http://api.fanyi.baidu.com/api/trans/vip/translate?q=${q}&from=${from}&to=${to}&appid=${appid}&salt=${salt}&sign=${sign}`;
  return url;
};

const translater = () => {
  let url = setUrl("test", "auto", "zh");
  axios.get(url).then((res) => {
    console.log(res.data);
  });
};

translater();

完事了 拜拜!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档