导航:首页 > 操作系统 > 有道apiandroid

有道apiandroid

发布时间:2023-01-22 23:49:06

‘壹’ 如何调用有道翻译API

{"query":"$value","errorCode":50}这说明你的key没用,需要重新申请,或者是你的使用超出了权限

答题不易,互相理解,您的采纳是我前进的动力

‘贰’ 怎样用百度,有道翻译API开发自己的翻译软件

先在网络翻译API接口页面申请接口的使用。点击申请接入。

进入到申请页面后,我们按照要求填写好相关内容。因为我们是个人使用,所以选择个人开发者,而且当月翻译字符数200W以下免费,够用了。

在点击提交申请后,可以看到一些我们需要的信息。这些是我们待会要写代码用到的信息。

点击申请接入成功提示页面下面的接入文档,可以看到详细的使用说明。

通过点击 管理控制台 可以看到很多信息,包括我们刚才申请的信息。

好的,万事具备,只差代码了。下面把python3的代码贴出来,然后运行下看看效果如何:

import hashlib

import urllib.request

import json

import random


appid = '20161120000032362'

secretKey = '这里是你申请的密钥'

httpClient = None

myurl = 'http://api.fanyi..com/api/trans/vip/translate'

q = 'hello'

fromLang = 'en'

toLang = 'zh'

salt = random.randint(32768, 65536)

sign = appid+q+str(salt)+secretKey

m1 = hashlib.md5()

m1.update(sign.encode(encoding='utf-8'))

sign = m1.hexdigest()

myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign

response = urllib.request.urlopen(myurl).read().decode('utf8')

getJson = json.loads(response)

getInfo = getJson['trans_result']

s=getInfo[0]

re=s['dst']

print(re)

7

有道翻译api的过程大同小异,童鞋可以自行研究。我的Linux系统中的命令行翻译工具就是利用有道翻译api和python写的,方便简单。

‘叁’ 我在做android有道词典项目,有个问题找不到答案,就是为什么要申请有道API KEY,有什么用

要使用android api的时候,就要申请api key。

比如要使用网络地图api的时候,就要申请网络地图的api key

‘肆’ 有道智云api免费吗

有道智云api不免费。使用有道智云api需进入官方得支付系统支付后才能使用。先在有道智云进行注册,添加应用后即可得到账号,申请购买智云api。

‘伍’ 有道词典api key要如何申请,没有自己的网站,要如何处理

有道API是要你复制代码到你的网站或者应用程序的源代码中实现的

‘陆’ 如何写一个android studio插件

首先需要安装IntelliJ IDEA
下载网址:https://www.jetbrains.com/idea/
下载好就可以了~~
然后安装,运行,点击create New Project:

按照上图进行选择,如果没有SDK,则点击New新建一个即可。
然后点击Next,输入项目名称选择位置,就可以点击finish了。
项目的结构如下:

src目录下主要用于存放我们编写的代码。
这样准备工作就结束了~~
三、编码
(1) 关键知识
编码实际上核心的一个类叫做AnAction,可以直接选择NEW->Action,如下图:

然后填写一些相关信息:

需要填写的属性如下:
ActionID:代表该Action的唯一的ID,一般的格式为:pluginName.ID ClassName:类名 Name:就是最终插件在菜单上的名称 Description:对这个Action的描述信息
然后往下,选择这个Action即将存在的位置:
我们选择的是EditMenu,右侧选择为first,即EditMenu下的第一个,效果如图:

再往下就是制定快捷键了~~
都填写完成就可以点击OK了。
点击ok之后,可以看到为我们生成了下类:
?

1
2
3
4
5
6

<code class="language-java hljs ">public class TranslateAction extends AnAction {
@Override
public void actionPerformed(AnActionEvent e) {
// TODO: insert action logic here
}
}</code>

此外我们刚才填写的信息,也在plugin.xml中完成了注册,大家可以进去看一眼,actions的标签中,
当我们点击菜单的时候,就回触发actionPerformed()方法。
那么这么看,我们在这个方法中只要完成三件事:
获得当前选中的单词 调用相关API得到单词的意思 通过一个类似于PopupWindow来显示
当然,为了尽快的测试,你可以先在里面弹一个对话框,例如如下:
?

1
2
3

<code class="language-java hljs "> public void actionPerformed(AnActionEvent event) {
Messages.showMessageDialog("Hello World !", "Information", Messages.getInformationIcon());
}</code>

预期效果是点击Tranlate菜单,或者按快捷键会弹出一个提示对话框。
那么点击Run:

然后它会默认启动一个新的IntelliJ IDEA的界面,你可以随便新建一个项目,进入以后,你会发现Edit下多了一个Translate菜单,点击即可弹出我们设定的对话框:

ok,测试通过就放心了~
获得当前选中的单词 调用相关API得到单词的意思 通过一个类似于PopupWindow来显示
剩下的就是功能性的API了~
(2) 获得当前选中的单词
?

1
2
3
4
5
6
7
8
9
10
11
12
13

<code class="language-java hljs "> @Override
public void actionPerformed(AnActionEvent e) {
// TODO: insert action logic here
final Editor mEditor = e.getData(PlatformDataKeys.EDITOR);
if (null == mEditor) {
return;
}
SelectionModel model = mEditor.getSelectionModel();
final String selectedText = model.getSelectedText();
if (TextUtils.isEmpty(selectedText)) {
return;
}
}</code>

是不是觉得API很陌生,恩,我也觉得很陌生,关于API这里介绍其实没什么意义,本文主要目的是让大家对自定义插件有个类helloworld的认识,至于插件里面的代码涉及到的API等到大家需要编写插件的时候,再详细学习就好了,现在就不要浪费精力记忆这些东西了。
上面的代码就是获得选中的文本,通过一个Editor,然后拿到SelectionModel,再拿到selectedText,从字面上还是蛮好理解的。
拿到选中的文本之后,应该就是去查询该单词的意思了,查询呢,ECTranslation用的是you的Open SDK,其实也很简单,就是拼接一个url,然后等着解析返回数据就好了。
(3)调用相关API得到单词的意思
有道API的地址:
http://fanyi.you.com/openapi?path=data-mode
大家如果想要做单词翻译,可以看下,非常简单。
涉及到的代码:
?

1
2
3
4
5
6
7
8

<code class="language-java hljs ">String baseUrl = "http://fanyi.you.com/openapi.do?keyfrom=Skykai521&key=977124034&type=data&doctype=json&version=1.1&q=";

HttpUtils.doGetAsyn(baseUrl + selectedText, new HttpUtils.CallBack() {
public void onRequestComplete(String result) {
Translation translation = gson.fromJson(result, Translation.class);
showPopupBalloon(mEditor, translation.toString());
}
});</code>

HttpUtils就不贴了,就是直接开了个线程,通过HttpUrlConnection去访问网络,大家的项目中或者通过搜索引擎,代码一搜一堆。
baseUrl就是有道的url,加上我们选中的单词就是完整的url了,然后通过http访问,callback回调出返回的字符串,这里返回的是json类型的字符串。
baseUri是:
http://fanyi.you.com/openapi.do?keyfrom=Skykai521&key=977124034&type=data&doctype=json&version=1.1&q=name
我们根据返回的json字符串生成了一个类Translation;
然后通过Gson转化为Translation对象。
ps:拿着上面的baseUrl后面跟一个任何单词,直接访问浏览器就能看到返回的json数据了,这里大家天天写接口,类似的步骤比我肯定还熟悉。
好了,有了返回的数据以后,直接通过一个类似popupWindow展现即可。
(4)通过一个类似于PopupWindow来显示
涉及到的代码:
?

1
2
3
4
5
6
7
8
9
10
11

<code class="language-java hljs ">private void showPopupBalloon(final Editor editor, final String result) {
ApplicationManager.getApplication().invokeLater(new Runnable() {
public void run() {
JBPopupFactory factory = JBPopupFactory.getInstance();
factory.createHtmlTextBalloonBuilder(result, null, new JBColor(new Color(186, 238, 186), new Color(73, 117, 73)), null)
.setFadeoutTime(5000)
.createBalloon()
.show(factory.guessBestPopupLocation(editor), Balloon.Position.below);
}
});
}</code>

这个API,恩,我的源码,依然是不求记住,知道这有个类似的功能即可。
简单看一下,是通过创建一个JBPopupFactory,然后通过它创建一个HtmlTextBalloonBuilder,通过这个builder去设置各种参数,最后show。
ok,对于一个入门的例子,不要太强求对插件中这些API的掌握,还是那句话,等需要写了再去查,需要什么功能,哪怕到对应的插件中去源码都可以,当然也有文档:
http://www.jetbrains.org/intellij/sdk/docs/tutorials.html
有兴趣的可以整理各种类型的插件,比如弹出popupWindow,生成代码,生成文件类别的,然后对相关的API进行收集与整理。
这样代码写完了,先测试一下,点击RUN,然后看效果~
我们这里肯定是测试没问题的,效果图就是开始的那个gif.
如果没有问题,就可以去部署和发布我们的插件给别人去使用了。
这两部也非常简单。

阅读全文

与有道apiandroid相关的资料

热点内容
程序员阿里文化完整版 浏览:98
早间新闻在哪个app上面可以看 浏览:954
工作啦app注册的信息怎么删去 浏览:378
滚动转子式制冷压缩机 浏览:873
美国编程用什么软件 浏览:571
图片加密防盗用 浏览:616
dbscan算法python源码 浏览:849
固态硬盘文件夹删不掉 浏览:717
阳泉工会app怎么培训报名 浏览:669
编程图形二级题 浏览:549
怎样知道自己的app存在哪个文件夹 浏览:853
电子手帐app怎么下载 浏览:810
app播客是怎么赚钱的 浏览:380
东南亚服务器是什么档次 浏览:132
手机app怎么操控电热水器 浏览:839
python爬虫框架推荐 浏览:518
matlab遗传算法适应度函数 浏览:130
制作linux系统镜像 浏览:154
域名解析服务器ip地址不能正常 浏览:845
程序员十万个为什么 浏览:535