请选择 进入手机版 | 继续访问电脑版
 找回密码
搜索
查看: 1867|回复: 9

微信公众平台消息接口开发二之中英翻译

  [复制链接]
  • TA的每日心情
    慵懒
    2017-8-13 09:40
  • 签到天数: 133 天

    连续签到: 1 天

    [LV.7]常住居民III

    1310

    主题

    1389

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    11731

    社区QQ达人

    发表于 2014-7-29 20:04:57 | 显示全部楼层 |阅读模式
    一. 翻译接口:
    目前有很多第三方翻译接口,比如有道词典,百度等,开发人员根据这些接口可自己实现中英翻译。
    有道翻译的源码:需要自己申请key,然后填入
    1. function translate($keyword)
    2. {
    3.     $url = "http://fanyi.youdao.com/openapi.do?keyfrom=******&key=*******&type=data&doctype=json&version=1.1&q=".urlencode($keyword);
    4.      
    5.     $ch = curl_init();
    6.     curl_setopt($ch, CURLOPT_URL, $url);
    7.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    8.     $output = curl_exec($ch);
    9.      
    10.     if(curl_errno($ch))
    11.     { echo 'CURL ERROR Code: '.curl_errno($ch).', reason: '.curl_error($ch);}
    12.      
    13.     curl_close($ch);

    14.     //var_dump($content);
    15.     $youdao = json_decode($output, true);
    16.     $errorcode = $youdao['errorCode'];

    17.     $result = "";
    18.     if(isset($errorcode)){
    19.         switch ($errorcode){
    20.             case 0:
    21.                 $translation = $youdao['translation'][0]; //网络释义
    22.                 $explains = $youdao['basic']['explains']; //基本解释
    23.                 if ($translation != "") {
    24.                     $result = $translation;
    25.                 }else{
    26.                     foreach ($explains as $value) {
    27.                         $result = $result."\n".$value;
    28.                     }
    29.                 }
    30.                 break;
    31.             case 20:
    32.                 $result = "输入错误:要翻译的文本过长";
    33.                 break;
    34.             case 30:
    35.                 $result = "系统错误:无法进行有效的翻译";
    36.                 break;
    37.             case 40:
    38.                 $result = "输入错误:不支持的语言类型";
    39.                 break;
    40.             case 50:
    41.                 $result = "系统错误:无效的密钥,没有权限翻译";
    42.                 break;
    43.             default:
    44.                 $result = "系统错误:遇到未知错误,代码:".$errorcode;
    45.                 break;
    46.         }
    47.     }
    48.     else{
    49.         $result = "没有获得翻译结果?请和我们联系";
    50.     }
    51.     //return $youdao['translation']['0'];
    52.     return trim($result);
    53. }
    复制代码
    二、调用实现
    1. define("TOKEN", "qq62486");

    2.             
    3. $wechatObj = new wechatCallbackapiTest();
    4. $wechatObj->responseMsg();

    5. class wechatCallbackapiTest
    6. {
    7.     public function valid()
    8.     {
    9.         $echoStr = $_GET["echostr"];
    10.         //valid signature , option
    11.         if($this->checkSignature()){
    12.             echo $echoStr;
    13.             exit;
    14.         }
    15.     }

    16.     public function responseMsg()
    17.     {
    18.         //get post data, May be due to the different environments
    19.         $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
    20.         logger("R ".$postStr);
    21.         //extract post data
    22.         if (!empty($postStr)){
    23.             $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
    24.             $RX_TYPE = trim($postObj->MsgType);

    25.             switch ($RX_TYPE)
    26.             {
    27.                 case "text":
    28.                     $resultStr = $this->receiveText($postObj);
    29.                     break;
    30.                 case "event":
    31.                     $resultStr = $this->receiveEvent($postObj);
    32.                     break;
    33.                 default:
    34.                     $resultStr = "unknow msg type: ".$RX_TYPE;
    35.                     break;
    36.             }
    37.             logger("T ".$resultStr);
    38.             echo $resultStr;
    39.         }else {
    40.             echo "";
    41.             exit;
    42.         }
    43.     }

    44.     private function checkSignature()
    45.     {
    46.         $signature = $_GET["signature"];
    47.         $timestamp = $_GET["timestamp"];
    48.         $nonce = $_GET["nonce"];

    49.         $token = TOKEN;
    50.         $tmpArr = array($token, $timestamp, $nonce);
    51.         sort($tmpArr);
    52.         $tmpStr = implode( $tmpArr );
    53.         $tmpStr = sha1( $tmpStr );

    54.         if( $tmpStr == $signature ){
    55.             return true;
    56.         }else{
    57.             return false;
    58.         }
    59.     }

    60.     private function receiveText($object)
    61.     {
    62.         $funcFlag = 0;
    63.         $keyword = trim($object->Content);
    64.         $resultStr = "";
    65.         $cityArray = array();
    66.         $contentStr = "";
    67.         $needArray = false;
    68.         $illegal = false;
    69.         $saytome = false;
    70.          
    71.         if (1 == 1){
    72.             $contentStr = translate($keyword);
    73.             $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
    74.             return $resultStr;
    75.         }
    76.         //Content 消息内容,大小限制在2048字节,字段为空为不合法请求
    77.         return $resultStr;
    78.     }
    79.      
    80.     private function receiveEvent($object)
    81.     {
    82.         $contentStr = "";
    83.         switch ($object->Event)
    84.         {
    85.             case "subscribe":
    86.                 $contentStr = "请直说,我将为你自动翻译";
    87.                 break;
    88.             case "unsubscribe":
    89.                 $contentStr = "";
    90.                 break;
    91.             case "CLICK":
    92.                 switch ($object->EventKey)
    93.                 {
    94.                     default:
    95.                         $contentStr = "receive a eventkey: ".$object->EventKey;
    96.                         break;
    97.                 }
    98.                 break;
    99.             default:
    100.                 $contentStr = "receive a new event: ".$object->Event;
    101.                 break;
    102.         }
    103.         $resultStr = $this->transmitText($object, $contentStr);
    104.         return $resultStr;
    105.     }
    106.      
    107.     private function transmitText($object, $content, $flag = 0)
    108.     {
    109.         $textTpl = "<xml>
    110. <ToUserName><![CDATA[%s]]></ToUserName>
    111. <FromUserName><![CDATA[%s]]></FromUserName>
    112. <CreateTime>%s</CreateTime>
    113. <MsgType><![CDATA[text]]></MsgType>
    114. <Content><![CDATA[%s]]></Content>
    115. <FuncFlag>%d</FuncFlag>
    116. </xml>";
    117.         $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
    118.         return $resultStr;
    119.     }
    120. }
    复制代码





    上一篇:微信公众平台消息接口开发一:接口启用
    下一篇:微信公众平台消息接口开发三之语音触发(非识别)
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-16 09:25
  • 签到天数: 60 天

    连续签到: 2 天

    [LV.6]常住居民II

    11

    主题

    1513

    帖子

    4623

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    4623

    社区QQ达人

    发表于 2016-1-21 09:42:10 | 显示全部楼层
    网程微建站平台(www.phpwc.com,qq:3222486313)是网程公司独立开发的多用户智能微信公众号第三方管理平台(简称:网程微平台),企业无需购买域名、服务器、3分钟就可以在线建立自己的微信网站,现已开发80多种功能应用,近百套行业模版,360°整合CRM系统+网页展示+客户服务+吸粉宣传+收款成交五大服务,满足99%企业/商家互联网营销需求。
    网程微建站:www.phpwc.com(微信公众号第三方平台),免费接入,另招全国代理商,QQ:3222486313
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-4-26 16:36
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    1

    主题

    2568

    帖子

    6440

    积分

    论坛元老

    Rank: 8Rank: 8

    积分
    6440

    社区QQ达人

    QQ
    发表于 2016-8-19 10:39:42 | 显示全部楼层
    林州网程科技有限公司成立于2015年2月,基于微信公众平台为企业提供开发、运营、培训、推广一体化解决方案,帮助企业实现线上线下互通(O2O),社会化客户关系管理(SCRM),移动电商,营销推广、轻应用、社会化营销工具、定制应用等多个层面的业务开发,具备行业领先的研发能力,是一家专注于企业级移动互联网业务的高新技术企业,致力于为各类企事业单位提供先进的、专业化“互联网+”解决方案。(详情请登录网程微平台官网:www.phpwc.com,qq:3285043939)
    网程微建站(www.phpwc.com)——微信第三方开发,QQ:3285043939
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:49:07 | 显示全部楼层
    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:49:28 | 显示全部楼层
    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:49:45 | 显示全部楼层
    余秋红 发表于 2017-1-4 10:49
    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢

    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:50:01 | 显示全部楼层
    余秋红 发表于 2017-1-4 10:49
    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢

    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:54:21 | 显示全部楼层
    phpwc8 发表于 2016-1-21 09:42
    网程微建站平台(www.phpwc.com,qq:3222486313)是网程公司独立开发的多用户智能微信公众号第三方管理平台 ...


    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:55:04 | 显示全部楼层

    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    20

    帖子

    45

    积分

    新手上路

    Rank: 1

    积分
    45

    社区QQ达人

    发表于 2017-1-4 10:55:25 | 显示全部楼层
    phpwc8 发表于 2016-1-21 09:42
    网程微建站平台(www.phpwc.com,qq:3222486313)是网程公司独立开发的多用户智能微信公众号第三方管理平台 ...


    朋友,关注下我微信公众号keyuanjiaoyu80 ,谢谢
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    微信新闻|微信推广|微信代理|微信SEO| 微信论坛  

    Copyright © 2001-2013 Comsenz Inc.   All Rights Reserved.

    Powered by Discuz! X3.2( 蜀ICP备12031029号-2 )

    渝公网安备 50010302000801号

    快速回复 返回顶部 返回列表