微信日志开发日志二(翻译,天气预报的实现)

这一篇文章将对大家每天都会关心的翻译功能进行开发,例如,用户发送消息 “翻译我爱你”,则会返回英文翻译。同时如果有需要可以进行多语种(日语等)开发。

1.首先我们对开发的思路进行简单的分析
当我们获取到了用户传来的数据时,对数据进行简单的分析
if(关键字含有‘翻译’&&翻译意外还有词组)
调用翻译接口进行翻译
else
return ‘‘
为什么是返回‘‘而不是false呢,
因为我们的微信公众号不仅仅只有翻译一种功能,我们还会额外开发天气预报,小黄鸡,地铁(公交查询)等功能。

2.翻译API

在这里我们使用有道翻译的接口进行测试。

小贴士:使用有道翻译接口时需要申请获取keyfrom,apikey。申请地址使劲戳这

3.数据格式

xml 格式
<?xml version="1.0" encoding="UTF-8"?>
<youdao-fanyi>
    <errorCode>0</errorCode>
    <!-- 有道翻译 -->
    <query><![CDATA[这里是有道翻译API]]></query>
    <translation>
        <paragraph><![CDATA[Here is the youdao translation API]]></paragraph>
    </translation>
</youdao-fanyi>
-------------------------------------
 json 格式
{
    "errorCode":0
    "query":"翻译",
    "translation":["translation"], // 有道翻译
    "basic":{ 
        "phonetic":"fān yì",
        "explains":[
            "translate",
            "interpret"
        ]
    },
    "web":[
        {
            "key":"翻译",
            "value":["translator","translation","translate","Interpreter"]
        },
        {...}
    ]
}

 事实上微信日志已经内置了数据格式的转换,这个阶段其实可以跳过,但是为了适应其他平台的开发,理解一下也是好的。

 

4.关键字判断以及翻译内容的获取

从消息的开头开始截取,截取两个字符,然后加以判断是否为 “翻译” 关键字。

$str_valid = mb_substr($keyword,0,-2,"UTF-8");

接下来进行待翻译内容提取:

$word = mb_substr($keyword,2,218,"UTF-8");

从消息的开头第3个字符开始截取,截取218个字符,截取出来的即为待翻译内容。

 对于mb_substr用法不是很熟悉的同学可以查看一下PHP的官方解释。

 

5.具体实现

	public function get_content($keyword) {//(输入出回复容的函数,这个函数名不能改)

            if(!empty( $keyword ))
            {
                $str_trans = mb_substr($keyword,0,2,"UTF-8");
                $str_valid = mb_substr($keyword,0,-2,"UTF-8");
                if($str_trans == ‘翻译‘ && !empty($str_valid))
                {

                    $word = mb_substr($keyword,2,202,"UTF-8");
						//调用有道词典
                    $contentStr = $this->youdaoDic($word);
                	return $contentStr.;
                }
            }
        return ‘‘;
	}

 为了适应微信日志的开发关则,函数get_content($keyword)不能改变。

json格式的关键代码如下

	public function youdaoDic($word){

		$keyfrom = "";	//申请APIKEY时所填表的网站名称
		$apikey = "";  //从有道申请的APIKEY
		$url_youdao = ‘http://fanyi.youdao.com/fanyiapi.do?keyfrom=‘.$keyfrom.‘&key=‘.$apikey.‘&type=data&doctype=json&version=1.1&q=‘.$word;
		
		$jsonStyle = file_get_contents($url_youdao);

		$result = json_decode($jsonStyle,true);
		
		$errorCode = $result[‘errorCode‘];
		
		$trans = ‘‘;

		if(isset($errorCode)){

			switch ($errorCode){
				case 0:
					$trans = $result[‘translation‘][‘0‘];// 获取翻译结果
					break;
				default:
					$trans = ‘出现异常‘;//无法进行有效翻译
					break;
			}
		}
		return $trans;
	}

 6.测试

微信日志开发日志二(翻译,天气预报的实现)

 

7.结束语

本文主要介绍微信日志基础上的插件开发,如果有想知道一般情况下的开发方法,请私信(dinghinh154)联系或者留言都可以。

请关注80后宜昌打工仔微信公众帐号,基于wordpress平台开发,针对于主流的微信功能进行开发测试。

您可以关注80后宜昌打工仔公众帐号进行功能测试。

 微信日志开发日志二(翻译,天气预报的实现)

 

 

 

微信日志开发日志二(翻译,天气预报的实现)

上一篇:微信开发(02)之处理微信客户端发来的消息


下一篇:微信源码结构(ios版)