写在前面

最近收到百度翻译的邮件,大概就是说原来的翻译 API 已经全面升级,旧的接口快不能用了,保留到2016年1月31日。因为之前在少数派分享过几条有用到这个 API 的 Workflow 所以特此来更新下。。顺便分享下如何使用百度的 API ,以防之后又更新的。

申请接入

接口需要申请,之前的那条 Workflow 用的是我的 appkey,大家最好还是申请自己的。这样的话如果以后有更新 API 可以第一时间得到邮件通知。

申请地址

进去之后,点击「申请接入」1.jpg写着好像是收费的,但是。。2.jpg其实个人使用的话,可以看作免费的。

点进去之后,填写一些必要的个人信息,比如,邮箱,手机号码等,还有你的网站或者应用名称。 这玩意儿随便填填就好了,剩下不带星号的,空着就好了

填好之后,你就获得了你的 APP ID 和密钥。收藏起来。3.jpg

官方文档的阅读

首先,当然是阅读接入文档,挺简单,又都是中文的。

来看下必要的参数。4.jpg


  • 「q」关键字,这是我们要输入的东西。
  • 「from」翻译源语言,我们选择自动识别了,这样可以自动识别日英等语言。
  • 「to」译文语言,我们选择中文(zh)。
  • 「appid」刚刚申请到了。
  • 「salt」随机数,我也不太清楚这是什么,不过发现随便输入点数字就可以了,大家就随便输点好了。可谓是真・随机数。(好吧,其实可以用 Random Number )
  • 「sign」,签名,下文讲解如何获取。

sign 计算方法

首先看下官文文档怎么写的。

sign的计算方法:

>拼接串1

appid=2015063000000001 salt=1435660288 q=hi

串1=2015063000000001hi1435660288

>拼接串2(平台分配的私钥为12345678)

串2=2015063000000001hi143566028812345678

>计算签名(sign)

sign=md5(2015063000000001hi143566028812345678)

sign=4429c3a63d860eff6d296d3cca5a8183

噢!官方的例子太真实了,一堆数字和字母看着头疼。

我来简化下

sign=md5(appid+q+随机数+密钥)

此处为了方便阅读添加了加号,实际是不需要加号的

嗯,大概就这样。

MD5 加密

百度翻译原来的 API 是不需要 MD5 加密的。不过这次升级好像是为了接口的安全。

一开始我确实是懵逼了。。不过意外的发现 Workflow 竟然可以 MD5 加密。

使用的 Action 是 Generate Hash(MD5)

BBD519239EB64D33F37EEA34DEA26D4A.png

开始制作 Workflow

好了,做好了所有的准备之后,就可以开始制作了。

这是百度翻译的完整请求方式:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=关键字&appid=刚刚申请的appid&salt=随机数&from=auto&to=zh&sign=签名

  1. 首先,当然需要一个 ask for input 来输入你的关键字,当然你可以直接调用剪切板,具体看实际使用情况
  2. 对文字进行转码 URL Encode(Encode)
  3. 注意!!此处需要设定 2 个变量,转码前的文字,和转码后的文字。因为,你的sign 需要转码前的关键字。IMG_0960.PNG
  4. 在来个随机数。IMG_0959.PNG
  5. 开始计算下sign。
  6. 把上面的东西并按照完整请求方式填入在 Text 里面IMG_0958.PNG
  7. 开始请求。FF5C4A7F888AEB0C1D80E2E102FF305A.pngGet Value for Key 里面的字符可以参照官方文档。
  8. 但是这样还是不够,如果你输入的多行的文字的话,获取译文的时候可能会出现这个情况。IMG_0962.PNG
  9. 你需要进行这样处理

IMG_0965.PNG

以上就是简易的流程

问题

目前这条 Workflow 还有问题。不对,可能百度翻译的接口还有点问题,当你输入的文字含有加号的时候,它就会返回签名错误。(研究了好久才发现这个问题)

对了,原来的百度翻译的接口的问题好像识别不了 &。

额,好吧,所以最好先对输入的文字做下处理。查找 + 并把它替成 and。

下载这条 Workflow

小结

个人觉得,还是挺简单的。原来那条会在2016年1月31日过期,在这之前,最好把这个替换进去。

写在后面

一堵墙,无形之中,增加了多少工作量!!!如果你能稳定科学上网,又嫌麻烦的话,直接用自带的就好了。

这个是自带的 Action

EFBBAE1464E948184B8FF60FAFEF00ED.png对比下,感受下墙内的水深火热。


IMG_0969.PNG

这个时候,只要微笑就可以了。

6
14