一直在使用的 Alfred2 有道翻译的 Workflow 今天突然就不能使用了,刚开始以为是网络的问题,多次确认之后排除了网络的原因。想着可能是有道翻译的 API 更新了,使用以前的 API 调用会失败,然后就想着看看这个 Workflow 中使用的是哪个 API,那么怎么查看这个 Workflow 究竟用的是哪个 API 呢?
我们一步步来吧,首先打开 Alfred2 的设置页面,选中 Workflows Tab 页:
然后双击标题为 yd 的 Script Filter,或者右键选中标题为 yd 的 Script Filter,然后选择 Configure 菜单项,进入 yd Script Filter 的配置界面:
然后我们会看到一些命令啥的,不要管它咯,直接点击右下方那个 Open workflow folder 按钮,打开这个有道翻译的 Workflow 资源存放目录,如下:
从上一个设置页面中,我们可以看到 translate.php 文件应该是真正干活的脚本,所以我们打开目录中的 translate.php 脚本文件,然后我们就可以看到这个脚本是如何通过访问有道的开放 API 来完成翻译的工作的。
用红色标注出来的两个参数就是这个 Workflow 不再工作的原因,可能是因为有道翻译的这个 Workflow 使用的人太多,而大家都是直接从 alfredworkflow 上下载的,Workflow 中的 API Key 就是这个 Workflow 的作者当时自行申请的一个 Key,而有道对于每个 API Key 有一个每日访问次数限制为 1000,所以很有可能就是因为现在使用 keyfrom=SeekBetterMe&key=164530784 这两个参数的人太多导致 API 访问次数超限了,所以有道翻译已经不再返回查询结果了。
那么既然找到问题了,我们只需要自己申请一个新的给自己用的 API Key 就好了。找到有道翻译 API 的首页:
点击我是开发者,进入调用数据接口页面,填写正确的网站信息,马上就可以获取一个专属于自己的 API Key,然后将其替换到 translate.php 文件中就可以了。
然后保存 translate.php 文件,重新呼出 Alfred2 有道翻译的 Workflow 就可以了。