1.简介
有时候突然想不起一个单词的意思,又不想打开笨重的翻译APP,怎么办?如果可以微信问问朋友,而且这个朋友一直在线,那该多好!这时,就可以求助于这个小玩意了。它自动把发来的内容做中英互译,然后将结果发回给用户,可以实现单词和句子的翻译。有兴趣的话,可以尝试一下,下面是该公众号的二维码,扫码可关注:
微信着凭借腾讯庞大的用户网络以及强大的约炮功能,战胜众多聊天工具,成功坐拥数亿用户。最近腾讯一项重大动作就是开启了公共平台,众多明星以及公司都开始借助公共平台来进行营销。为了方便第三方应用,腾讯为公众号提供了第三方消息借口,可以把用户消息转发给服务提供者,这是一个挺有趣的功能。我就用这玩意做了个带自动翻译功能的微信号。此外,这个号的后台还连接了一个聊天机器人,但是因为现在暂时只支持英文聊天人人小黄鸡用的免费simisimi接口被封了我会乱说?,所以暂时还没有开放。
2.原理
其实原理很简单,只需要在新浪云平台上运行一个应用,把应用的地址提交腾讯,微信公共平台在简单验证后,会把该网址和消息绑定。以后用户给该微信公众号发消息后,平台会把该消息和发送人、时间、签名等信息生成一个XML报文,对绑定的网址做请求,XML会附在请求的URL里面。关于这个接口的验证和收发编码的编程,腾讯有一个比较详细的实例程序。云端应用的任务就是解析这个XML,然后提取消息内容,然后把查询的单词或者句子提交给翻译API,把翻译器返回的结果生成报文返回给平台,变成微信发给用户。这里平台和云端应用起到了中转的作用。
目前翻译的API使用的是有道提供的开放API,也是web service形式的。非常易用,为了方便查询,我做了一个接口的封装类,代码如下从来没用过php,渣代码求勿笑:
<?php
class youdaoAPI {
public function getTrans($requestContent) {
$requestContent = urlencode ( $requestContent );
$key = yourkey;
$keyfrom = yourkeyfrom;
$doctype = "json";
$requestURL = 'http://fanyi.youdao.com/openapi.do?keyfrom=' . $keyfrom . '&key=' . $key . '&type=data&doctype=json&version=1.1&q=';
$request = $requestURL . $requestContent;
//echo $request;
$response = @file_get_contents ( $request );
//echo $response;
$responseObj = json_decode ( $response, true );
$errorCode = $responseObj ['errorCode'];
if (isset ( $errorCode )) {
switch ($errorCode) {
case 0 :
$returnStr = $this->getRst ( $responseObj );
//echo $returnStr;
break;
case 20 :
$returnStr = "输入太长";
break;
case 30 :
$returnStr = '无法有效翻译';
break;
case 40 :
$returnStr = '不支持的语言';
break;
case 50 :
$returnStr = 'API接口密钥失效,请联系管理员!';
break;
default :
$returnStr = "出现异常,请联系管理员";
}
}
return $returnStr;
}
private function getRst($responseObj) {
$query = $responseObj ['query'];
$trans = $responseObj ['translation'];
$dic_rst = $responseObj ['basic'];
if (isset ( $dic_rst )) {
$phonetic = $dic_rst ['phonetic'];
$exp = $dic_rst ['explains'];
//echo $exp;
$nExp = count ( $exp );
//echo $nExp;
$i = 1;
foreach ( $exp as $value ) {
$subExp = $subExp . $i . '. ' . $value . ' ; ';
$i ++;
}
$basicStr = '音标-' . $phonetic . '; 释义-' . $subExp;
//echo $basicStr;
$rst = '翻译单词-"' . $query . '": ' . $basicStr;
} else {
$rst = '翻译短句-"' . $query . '":' . $trans ['0'] . '.';
}
return $rst;
}
}
?>
P.S 里面需要一个Key用来请求有道的API,这个去有道的网站申请一个就是了。另外就是查询中文需要使用UTF先编码后再贴在请求上。
3. 其他
现在疼讯的消息接口支持发送文本消息和地理位置,回复支持文本和图文。可以做一个天气查询以及基于图片的应用,暂时还没有什么有意思的想法,想到了再说。 还有,用这个来翻译感觉挺方便的, 关键是快。
就这样吧,嗯。
给大哥跪了。。