微信公众平台消息接口开发(3)中英翻译

简介: 要做一个翻译账号,有以下几步: 一. 有翻译接口: 目前有道词典提供了翻译接口,申请地址 http://fanyi.youdao.com/openapi?path=data-mode 下面是申请介绍: 申请完成后,会收到邮件,邮件中有api key: 数据接口 http://fanyi.

要做一个翻译账号,有以下几步:

一. 有翻译接口:

目前有道词典提供了翻译接口,申请地址 http://fanyi.youdao.com/openapi?path=data-mode

下面是申请介绍:

申请完成后,会收到邮件,邮件中有api key:

数据接口

http://fanyi.youdao.com/openapi.do? keyfrom=<keyfrom>&key=<key> &type=data&doctype=<doctype>&version=1.1 &q=要翻译的文本

版本:1.1,请求方式:get,编码方式:utf-8

主要功能:中英互译,同时获得有道翻译结果和有道词典结果(可能没有)

参数说明:

 type - 返回结果的类型,固定为data
 doctype - 返回结果的数据格式,xml或json或jsonp
 version - 版本,当前最新版本为1.1
 q - 要翻译的文本,必须是UTF-8编码,字符长度不能超过200个字符,需要进行urlencode编码
errorCode:
 0 - 正常
 20 - 要翻译的文本过长
 30 - 无法进行有效的翻译
 40 - 不支持的语言类型
 50 - 无效的key

 

json数据格式举例

http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=json&version=1.1&q=good

{
    "errorCode":0
    "query":"good",
    "translation":["好"], // 有道翻译
    "basic":{ // 有道词典-基本词典
        "phonetic":"gʊd"
        "uk-phonetic":"gʊd" //英式发音
        "us-phonetic":"ɡʊd" //美式发音
        "explains":[
            "好处",
            "好的"
            "好"
        ]
    },
    "web":[ // 有道词典-网络释义
        {
            "key":"good",
            "value":["良好","善","美好"]
        },
        {...}
    ]
}

 

 

二 程序实现:

有道翻译的源码:需要自己申请key,然后填入

 

 

微信调用

define("TOKEN", "qq612312312312");

            
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];
        //valid signature , option
        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

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

            switch ($RX_TYPE)
            {
                case "text":
                    $resultStr = $this->receiveText($postObj);
                    break;
                case "event":
                    $resultStr = $this->receiveEvent($postObj);
                    break;
                default:
                    $resultStr = "unknow msg type: ".$RX_TYPE;
                    break;
            }
            logger("T ".$resultStr);
            echo $resultStr;
        }else {
            echo "";
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];

        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );

        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }

    private function receiveText($object)
    {
        $funcFlag = 0;
        $keyword = trim($object->Content);
        $resultStr = "";
        $cityArray = array();
        $contentStr = "";
        $needArray = false;
        $illegal = false;
        $saytome = false;
        
        if (1 == 1){
            $contentStr = translate($keyword);
            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
            return $resultStr;
        }
        //Content 消息内容,大小限制在2048字节,字段为空为不合法请求
        return $resultStr;
    }
    
    private function receiveEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr = "请直说,我将为你自动翻译";
                break;
            case "unsubscribe":
                $contentStr = "";
                break;
            case "CLICK":
                switch ($object->EventKey)
                {
                    default:
                        $contentStr = "receive a eventkey: ".$object->EventKey;
                        break;
                }
                break;
            default:
                $contentStr = "receive a new event: ".$object->Event;
                break;
        }
        $resultStr = $this->transmitText($object, $contentStr);
        return $resultStr;
    }
    
    private function transmitText($object, $content, $flag = 0)
    {
        $textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>%d</FuncFlag>
</xml>";
        $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
        return $resultStr;
    }
}

 

四,效果演示

 

中文翻译成英语

 

 

 

==================================

欢迎关注方倍工作室微信,了解我们及行业的最新动态

 

相关文章
|
PHP
微信公众平台消息接口开发-封装weixin.class.php
原文:微信公众平台消息接口开发-封装weixin.class.php 一、封装weixin.class.php 由于微信公众平台的通信使用的是特定格式的XML数据,每次接受和回复都要去做一大堆的数据处理。
817 0
|
XML API 数据格式
微信公众平台消息接口开发(32)空气质量指数查询
原文:微信公众平台消息接口开发(32)空气质量指数查询 微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 空气质量指数 PM2.5 作者:方倍工作室 原文:http://www.cnblogs.
1457 0
|
算法 API 开发者
微信公众平台消息接口开发(30)大众点评商户信息团购及优惠券查询
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 大众点评 商户信息 团购 城市优惠券作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archive/2013/05/23/weixin-if30-dianping.html    一、获取数据 大众点评推出国内首个 O2O 开发者平台——“大众点评开发者平台”,开发者应用可访问大众点评平台上的本地商户信息、商户点评、优惠及团购等内容。
1874 0
|
Web App开发 PHP Apache
微信公众平台消息接口开发(31)微信浏览器HTTP_USER_AGENT判断
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 微信浏览器 HTTP_USER_AGENT作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/archive/2013/05/25/weixin-if31-http_user_agent.html    在微信公众平台的开发过程中,我们有时需要开发网页并判断是否是是来自微信浏览器访问,本文介绍如何做出这一判断。
1220 0
微信公众平台消息接口开发(29)校验签名与消息响应合并
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 签名校验 消息响应作者:方倍工作室原文:http://www.cnblogs.com/txw1958/archive/2013/05/08/weixin-if29-valid-responseMsg.
891 0
微信公众平台自定义菜单接口开发(1)
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 服务号 自定义菜单接口API 作者:方倍工作室原文:http://www.cnblogs.com/txw1958/archive/2013/04/19/weixin-menu1.html   一、获取权限 自定义菜单接口目前处于内测阶段,需要向腾讯官方申请权限。
1037 0
微信公众平台消息接口开发(27)彩票查询
微信公众平台开发 微信公众平台开发者 微信公众平台开发模式 彩票查询接口作者:http://www.cnblogs.com/txw1958/ 原文:http://www.cnblogs.com/txw1958/archive/2013/04/13/weixin-if27-lottery.html    一、获取数据 目前很多网站都提供彩票信息查询,所以取得彩票数据是件很容易的事。
1545 0
微信公众平台消息接口开发(25)URL关注链接
很多网友看到有人发布为微信信息中附带的连接,直接点击后可以链接到微信公众号介绍页面,可以直接加关注,询问怎么操作,其实我们网站已经有了手机订阅功能,只要用户在微信里点开我们微信聚的链接直接点手机订阅即可进入关注界面。
1174 0
|
Web App开发 API
微信公众平台消息接口开发(12)消息接口Bug
微信公众平台开发模式 微信公众平台消息接口 微信公众平台API 微信开发模式 Bug 方倍工作室 原文:http://www.cnblogs.com/txw1958/archive/2013/03/16/weixin-if12-bug.html     自己看吧,不做说明了。
711 0
|
JSON API 数据格式
微信公众平台消息接口开发(13)多语种互译
微信公众平台消息接口 微信公众平台API 微信开发模式 多语种翻译 多语言互译 Microsoft Translator 方倍工作室     Paraphrase API   10 out of 11 rated this helpful - Rate this topic   ...
861 0