Lingoes Homepage 灵格斯首页
概述
   功能介绍
  更新历史
  屏幕截图
   
软件下载
  灵格斯词霸
   
附加资源
  屏幕取词插件
  语言包
  词典和百科全书
  真人及TTS语音库
  附录工具
  Web 查询引擎
  音标字体
  输入法
API 服务
   
帮助
  常见问题解答
  使用手册
  翻译多种语言版本
   
   
Lingoes API 服务调用指南
综述
Lingoes API 服务可以让开发者在浏览器或其他软件中通过发送标准的 HTTP 请求, 来调用灵格斯的屏幕取词, 词典查询及文本翻译功能,

目前 API 服务为实验性功能, 如果你有什么想法和需求, 请发邮件至 kevin-yau@msn.com 和我联络.
 

开发前准备工作
  1. 启用 API 服务器
    启动灵格斯, 打开 "主菜单" > "设置" > "其他" -> "API 服务器" 窗口,  选中 "启用 API 服务器", 并按 "确定" 按钮关闭设置窗口.
    注意: 此时 Windows 防火墙会弹出窗口询问是否允许程序通过防火墙通信, 你需要请选择允许,
    你之后也可以在 "控制面板" > "系统和安全" > "Windows 防火墙" > "允许的程序" 里添加和修改 Lingoes 的网络权限, 允许其通过网络通信.

     
  2. 修改 API 服务器参数
    API 服务默认绑定IP地址是 127.0.0.1,  端口是 11111, 你也可以根据需要修改. 如果 IP 地址栏内填写 * 号, 表示绑定本机所有IP地址.
    为了方便起见, 这里我们统一使用 127.0.0.1 和 11111 来进行讲解.
     
  3. 测试 API 服务器是否正常运行
    在浏览器中输入 http://127.0.0.1:11111/ , 如果看到 "LingoesAPI/1.0.0 Web Server" 字样, 表示 API 服务正在运行, 接下来你就可以开始下一步开发工作了.
API 接口说明
提示: 在浏览器中调用本地 Lingoes API 服务会产生 AJax 跨域请求, Lingoes API 服务器已提供 Cross-Origin Resource Sharing (CORS)  自动跨域授权访问技术, 支持目前所有最新版本的浏览器, 开发者无需做任何特别的设置就可以直接发送跨域请求.
1.  在指定位置显示屏幕取词窗口:
http://127.0.0.1:11111/lingoes?cmd=mini_search&text=文字&pos_x=窗口X坐标&pos_y=窗口Y坐标
详细说明 >>
2. 查询词典, 并在指定位置显示 Lingoes 主窗口:
http://127.0.0.1:11111/lingoes?cmd=main_search&text=文字&pos_x=窗口X坐标&pos_y=窗口Y坐标
详细说明 >>
3. 翻译文字, 并在指定位置显示 Lingoes 主窗口:
http://127.0.0.1:11111/lingoes?cmd=main_translator&text=文字&pos_x=窗口X坐标&pos_y=窗口Y坐标
详细说明 >>
代码及示例
调用示例:  (请确认灵格斯当前正在运行, 并且启用了 API 服务器)
单词或文字:
窗口 x 坐标:
窗口 y 坐标:
         
源代码:
<script type="text/javascript">
// 创建XMLHTTP对象
var request = new XMLHttpRequest();
function OnApiCallback() {
  if (request.readyState == 4) {
    if (request.status == 200) {
      var jResult = JSON.parse(request.responseText);
      document.getElementById("lgs_api_result").innerText = JSON.stringify(jResult);
    } else {
      document.getElementById("lgs_api_result").innerText = "Error: status code is " + request.status;
    }
  }
}
// Lingoes API 调用函数
function CallLingoesApi(sCmd) {
  var sText = document.getElementById("text").value;
  var sPosX = document.getElementById("pos_x").value;
  var sPosY = document.getElementById("pos_y").value;
  sText = encodeURIComponent(sText);
  sPosX = encodeURIComponent(sPosX);
  sPosY = encodeURIComponent(sPosY);

  var content = "cmd=" + sCmd + "&text=" + sText + "&pos_x=" + sPosX + "&pos_y=" + sPosY;
  var url = "http://127.0.0.1:11111/lingoes?" + content;
  request.open("GET", url, true);

  // 指定回调函数
  request.onreadystatechange = OnApiCallback;

  // 发送请求
  request.setRequestHeader("Cache-Control", "no-cache");
  request.setRequestHeader("Pragma", "no-cache");
  request.send(null);

  document.getElementById("lgs_api_result").innerText = "Wait Lingoes API Server Response...";
}
</script>
<div style="border:1px solid #e0e0e0; padding:10px; margin:10px 0 10px 0; background-color:#fafafa">
  <div>单词或文字: <input type="text" name="text" id="text" size="60" value="How are you"></div>
  <div>窗口 x 坐标: <input type="text" name="pos_x" id="pos_x" size="20"></div>
  <div>窗口 y 坐标: <input type="text" name="pos_y" id="pos_y" size="20"></div>
  <div style="margin: 10px 0 10px 0">
    <button id="act" onclick="CallLingoesApi('mini_search')" onmouseover="">显示屏幕取词窗口</button> &nbsp; 
    <button id="act" onclick="CallLingoesApi('main_search')" onmouseover="">查询单词</button> &nbsp;
    <button id="act" onclick="CallLingoesApi('main_translator')" onmouseover="">翻译文字</button>
  </div>
  <div id="lgs_api_result" style="margin-top: 10px; font-weight:bold"></div>
</div>

合作伙伴  |  词典出版计划  |  关于灵格斯

©2006-2014 Lingoes Project, All Rights Reserved