zoukankan      html  css  js  c++  java
  • 微信日志开发日志二(翻译,天气预报的实现)

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

    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后宜昌打工仔公众帐号进行功能测试。

     

     

     

  • 相关阅读:
    批量修改数据库表前缀
    form表单reset重置按钮
    thinkphp禁止模版标签解析
    form 转json,将form表单中的数据序列化数组后转换为Json
    MIME对应表
    zend studio 12汉化和破解
    hadoop一键安装伪分布式
    简明shell入门
    java中readLine()方法为什么有的行读不到?
    using 40 logical processors based on SQL Server licensing SqlServer CPU核心数限制问题
  • 原文地址:https://www.cnblogs.com/dinghing154/p/4361237.html
Copyright © 2011-2022 走看看