文章分类 Classification
微信开发在线翻译功能
稿件来源: 阳光企业网站管理系统 撰稿作者: 太阳光 发表日期: 2014-04-24 阅读次数: 438 查看权限: 游客查看
借用有道API开发微信翻译功能
思路比较简单,对用户输入的文本做一个正侧判断,符合条件就截取字符提交到第三方翻译网站的API里请求数据返回给粉丝。
网络上有很多翻译API,大家可以根据自己的需求进行选择。这里我们选择应用比较广泛的,翻译功能还比较不错的有道翻译API 。事后你可以去申请一个百度翻译试试。
步骤一:申请API
有道申请地址:http://fanyi.youdao.com/openapi?path=data-mode
申请过程很简单,填写几项内容提交即可得到:key:907***754 keyfrom:scscm***
注意使用有道API key 时,请求频率限制为每小时1000次,超过限制会被封禁。除非你另去申请增加请求数。
步骤二:随便想个规则,如粉丝输入 翻译:I LOVE YOU 开始翻译,也就是说翻译:三个字符开头,后面的文本全部拿去翻译。或者说FY:三个字符开头。
步骤三:不多说,我们就以FY:开头作为规则,不区分大小写,直接上码:
<?php header('Content-Type: text/html; charset=UTF-8'); define("TOKEN", "scsc***"); #修改成你的token define("KEYFROM", "scsc***"); #修改成你的有道KEYFROM define("KEY", "907661***"); #修改成你的有道KEY $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function valid() { if (isset($_GET['echostr'])) { if($this->checkSignature()){ echo $_GET["echostr"]; exit(); } }else{ $this-> responseMsg(); } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } #有道接口 function YouDaoTranslate($keyword) { $url = "http://fanyi.youdao.com/openapi.do?keyfrom=".KEYFROM."&key=".KEY."&type=data&doctype=json&version=1.1&q=".urlencode($keyword); $output = file_get_contents($url); $youdao = json_decode($output, true); $errorcode = $youdao['errorCode']; $result = ""; if(isset($errorcode)){ switch ($errorcode){ case 0: if(isset($youdao['basic']['us-phonetic'])) $result = "发音:英[{$youdao['basic']['phonetic']}] 美[{$youdao['basic']['us-phonetic']}]\n"; $result .= "快译:".$youdao['translation'][0]; if (isset($youdao['basic']['explains'])) $result .= "\n详解:".join("\n",$youdao['basic']['explains']); if (isset($youdao['web'])){ $web = $youdao['web']; foreach ($web as $key=>$value){ if($key){ $result .= "\n".$value["key"].join(";",$value["value"]); }else{ $result .= "\n网络释义:".join("|",$value["value"])."\n短语:"; } } } break; case 20: $result = "输入错误:要翻译的文本过长"; break; case 30: $result = "系统错误:无法进行有效的翻译"; break; case 40: $result = "输入错误:不支持的语言类型"; break; case 50: $result = "系统错误:无效的密钥,没有权限翻译"; break; default: $result = "系统错误:遇到未知错误,代码:".$errorcode; } } else{ $result = "对不起,没有翻译结果!"; } return trim($result); } public function responseMsg() { $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $times = time(); $Content = trim($postObj->Content); $msgType = $postObj->MsgType; if($msgType == 'text' && preg_match("/^fy:(.+)/i",$Content, $matches)){ $str = $this->YouDaoTranslate($matches[1]); $xml="<xml> <ToUserName><![CDATA[{$fromUsername}]]></ToUserName> <FromUserName><![CDATA[{$toUsername}]]></FromUserName> <CreateTime>{$times}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[{$str}]]></Content> </xml>"; echo $xml; exit (); } }else{ echo ''; exit (); } } } ?>
最后看看效果:
关键词: 有道,翻译,微信开发 编辑时间: 2014-04-25 17:38:33
0
高兴0
支持0
搞笑0
不解0
谎言0
枪稿0
震惊0
无奈0
无聊0
反对0
愤怒
0%(0)
0%(0)
- 中搜索:微信开发在线翻译功能
- 中搜索:微信开发在线翻译功能
- 暂无评论
文章图片 article Pictrue
网友评论