`
阿尔萨斯
  • 浏览: 4188077 次
社区版块
存档分类
最新评论

微信公众帐号开发教程第17篇-应用实例之智能翻译

 
阅读更多

内容概要

本篇文章为大家演示如何在微信公众帐号上实现“智能翻译”,本例中翻译功能是通过调用“百度翻译API”实现的。智能翻译是指用户任意输入想要翻译的内容(单词或句子),系统能自动识别用户采用的语言,并将其翻译为其他语言,目前支持的翻译方向:中->英、英->中和日->中。下面我们来看看智能翻译最终做出来的效果:


我们通过输入关键词“翻译”或者点击菜单“翻译”能够看到该功能的使用帮助,然后输入“翻译+内容”就能对内容进行翻译了。


百度翻译API介绍

点击查看百度翻译API使用说明,其实这份文档已经说的很详细了,笔者只是将我们调用该接口时最关心的内容摘取出来,主要如下:

1)通过发送HTTP GET请求调用百度翻译API。

2)百度翻译API请求地址:

  http://openapi.baidu.com/public/2.0/bmt/translate

3)调用API需要传递from、to、client_id和q四个参数,描述如下:

key value 描述
from 源语言语种:语言代码或auto 仅支持特定的语言组合,下面会单独进行说明
to 目标语言语种:语言代码或auto 仅支持特定的语言组合,下面会单独进行说明
client_id 开发者在百度连接平台上注册得到的授权API key 请阅读如何获取api key
q 待翻译内容 该字段必须为UTF-8编码,并且以GET方式调用API时,需要进行urlencode编码。
在调用接口前,我们要先获取到api key。获取方式比较简单,根据提示一步步操作就可以,笔者就不再赘述了。
4)对于智能翻译,参数from和to的传都是auto。
4)参数q的编码方式为UTF-8,传递之前要进行urlencode编码。

5)接口返回结果示例如下:

{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"}]}
返回结果里的中文是unicode编码,需要通过json_decode进行转换,转换后的示例如下:

{
    "from": "en",
    "to": "zh",
    "trans_result": [
        {
            "src": "today",
            "dst": "今天"
        },
        {
            "src": "tomorrow",
            "dst": "明天"
        }
    ]
}

JSON处理工具包Gson介绍

Gson是Google提供的用于在Java对象和JSON数据之间进行转换的Java类库。通过使用Gson类库,我们可以将JSON字符串转成Java对象,反之亦然。下载地址:https://code.google.com/p/google-gson/downloads/list,Gson的使用比较简单,直接调用它的方法toJson()或fromJson()就能完成相应的转换,但需要注意的是:在使用Gson将json字符串转换成Java对象之前,需要先创建好与目标Java对象。读者可以在维基百科上学习它的使用示例http://zh.wikipedia.org/wiki/Gson


代码实现

1)创建与百度翻译API返回的JSON相对应的Java类

  1. importjava.util.List;
  2. /**
  3. *调用百度翻译api查询结果
  4. *
  5. *@authorliufeng
  6. *@date2013-10-21
  7. */
  8. publicclassTranslateResult{
  9. //实际采用的源语言
  10. privateStringfrom;
  11. //实际采用的目标语言
  12. privateStringto;
  13. //结果体
  14. privateList<ResultPair>trans_result;
  15. publicStringgetFrom(){
  16. returnfrom;
  17. }
  18. publicvoidsetFrom(Stringfrom){
  19. this.from=from;
  20. }
  21. publicStringgetTo(){
  22. returnto;
  23. }
  24. publicvoidsetTo(Stringto){
  25. this.to=to;
  26. }
  27. publicList<ResultPair>getTrans_result(){
  28. returntrans_result;
  29. }
  30. publicvoidsetTrans_result(List<ResultPair>trans_result){
  31. this.trans_result=trans_result;
  32. }
  33. }
注意:这里的类名可以任意取,但是成员变量的名字应于翻译API返回的JSON字符串中的属性名保持一致,否则将JSON转换成TranslateResult对象时会报错。

TranslateResult类中的trans_result属性是一个ResultPair集合,该类的代码如下:

  1. /**
  2. *结果对
  3. *
  4. *@authorliufeng
  5. *@date2013-10-21
  6. */
  7. publicclassResultPair{
  8. //原文
  9. privateStringsrc;
  10. //译文
  11. privateStringdst;
  12. publicStringgetSrc(){
  13. returnsrc;
  14. }
  15. publicvoidsetSrc(Stringsrc){
  16. this.src=src;
  17. }
  18. publicStringgetDst(){
  19. returndst;
  20. }
  21. publicvoidsetDst(Stringdst){
  22. this.dst=dst;
  23. }
  24. }
说明:这两个类的封装是Gson类库所要求的,如果读者不是用Gson解析json字符串,而是用JSON-lib,就没有必要封装这两个类。


2)接口调用

  1. importjava.io.BufferedReader;
  2. importjava.io.InputStream;
  3. importjava.io.InputStreamReader;
  4. importjava.io.UnsupportedEncodingException;
  5. importjava.net.HttpURLConnection;
  6. importjava.net.URL;
  7. importcom.google.gson.Gson;
  8. /**
  9. *
  10. *@authorliufeng
  11. *@date2013-10-21
  12. */
  13. publicclassBaiduTranslateService{
  14. /**
  15. *发起http请求获取返回结果
  16. *
  17. *@paramrequestUrl请求地址
  18. *@return
  19. */
  20. publicstaticStringhttpRequest(StringrequestUrl){
  21. StringBufferbuffer=newStringBuffer();
  22. try{
  23. URLurl=newURL(requestUrl);
  24. HttpURLConnectionhttpUrlConn=(HttpURLConnection)url.openConnection();
  25. httpUrlConn.setDoOutput(false);
  26. httpUrlConn.setDoInput(true);
  27. httpUrlConn.setUseCaches(false);
  28. httpUrlConn.setRequestMethod("GET");
  29. httpUrlConn.connect();
  30. //将返回的输入流转换成字符串
  31. InputStreaminputStream=httpUrlConn.getInputStream();
  32. InputStreamReaderinputStreamReader=newInputStreamReader(inputStream,"utf-8");
  33. BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);
  34. Stringstr=null;
  35. while((str=bufferedReader.readLine())!=null){
  36. buffer.append(str);
  37. }
  38. bufferedReader.close();
  39. inputStreamReader.close();
  40. //释放资源
  41. inputStream.close();
  42. inputStream=null;
  43. httpUrlConn.disconnect();
  44. }catch(Exceptione){
  45. }
  46. returnbuffer.toString();
  47. }
  48. /**
  49. *utf编码
  50. *
  51. *@paramsource
  52. *@return
  53. */
  54. publicstaticStringurlEncodeUTF8(Stringsource){
  55. Stringresult=source;
  56. try{
  57. result=java.net.URLEncoder.encode(source,"utf-8");
  58. }catch(UnsupportedEncodingExceptione){
  59. e.printStackTrace();
  60. }
  61. returnresult;
  62. }
  63. /**
  64. *翻译(中->英英->中日->中)
  65. *
  66. *@paramsource
  67. *@return
  68. */
  69. publicstaticStringtranslate(Stringsource){
  70. Stringdst=null;
  71. //组装查询地址
  72. StringrequestUrl="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=AAAAAAAAAAAAAAAAAAAAAAAA&q={keyWord}&from=auto&to=auto";
  73. //对参数q的值进行urlEncodeutf-8编码
  74. requestUrl=requestUrl.replace("{keyWord}",urlEncodeUTF8(source));
  75. //查询并解析结果
  76. try{
  77. //查询并获取返回结果
  78. Stringjson=httpRequest(requestUrl);
  79. //通过Gson工具将json转换成TranslateResult对象
  80. TranslateResulttranslateResult=newGson().fromJson(json,TranslateResult.class);
  81. //取出translateResult中的译文
  82. dst=translateResult.getTrans_result().get(0).getDst();
  83. }catch(Exceptione){
  84. e.printStackTrace();
  85. }
  86. if(null==dst)
  87. dst="翻译系统异常,请稍候尝试!";
  88. returndst;
  89. }
  90. publicstaticvoidmain(String[]args){
  91. //翻译结果:Thenetworkreallypowerful
  92. System.out.println(translate("网络真强大"));
  93. }
  94. }
代码解读:
1)第21-53行封装了一个http请求方法httpRequest(),相信读过之前教程的读者已经很熟悉了。

2)第61-69行封装了一个urlEncodeUTF8()方法,用于对url中的参数进行UTF-8编码。

3)第81行代码中的client_id需要替换成自己申请的api key。

4)第83行代码是对url中的中文进行编码。以后凡是遇到通过url传递中文参数的情况,一定要显示地对中文进行编码,否则很可能出现程序在本机能正常运行,但部署到服务器上却有问题,因为本机与服务器的默认编码方式可能不一样。

5)第88行代码就是调用百度翻译API。

6)第90行代码是使用Gson工具将json字符串转换成TranslateResult对象,是不是发现Gson的使用真的很简单?另外,前面提到过调用百度翻译API返回的json里如果有中文是用unicode表示的,形如“\u4eca\u5929”,那为什么这里没有做任何处理?因为Gson的内部实现已经帮我们搞定了。


公众账号后台调用

在公众账号后台,需要对接收到的文本消息进行判断,如果是以“翻译”两个字开头的,就认为是在使用智能翻译功能,然后将“翻译”两个字之后的内容作为翻译对象,调用API进行翻译;如果输入的只有“翻译”两个字,就提示智能翻译功能的使用指南。关键代码如下:

  1. //文本消息
  2. if(WeixinUtil.REQ_MESSAGE_TYPE_TEXT.equals(msgType)){
  3. Stringcontent=requestMap.get("Content").trim();
  4. if(content.startsWith("翻译")){
  5. StringkeyWord=content.replaceAll("^翻译","").trim();
  6. if("".equals(keyWord)){
  7. textMessage.setContent(getTranslateUsage());
  8. }else{
  9. textMessage.setContent(BaiduTranslateService.translate(keyWord));
  10. }
  11. out.print(WeixinUtil.textMessageToXml(textMessage));
  12. }
  13. }
第7行getTranslateUsage()方法得到的就是智能翻译功能的使用指南,代码如下:

  1. /**
  2. *Q译通使用指南
  3. *
  4. *@return
  5. */
  6. publicstaticStringgetTranslateUsage(){
  7. StringBufferbuffer=newStringBuffer();
  8. buffer.append(XiaoqUtil.emoji(0xe148)).append("Q译通使用指南").append("\n\n");
  9. buffer.append("Q译通为用户提供专业的多语言翻译服务,目前支持以下翻译方向:").append("\n");
  10. buffer.append("中->英").append("\n");
  11. buffer.append("英->中").append("\n");
  12. buffer.append("日->中").append("\n\n");
  13. buffer.append("使用示例:").append("\n");
  14. buffer.append("翻译我是中国人").append("\n");
  15. buffer.append("翻译dream").append("\n");
  16. buffer.append("翻译さようなら").append("\n\n");
  17. buffer.append("回复“?”显示主菜单");
  18. returnbuffer.toString();
  19. }

说明:希望通过本例的学习,除了掌握百度翻译API的调用之外,读者还能够掌握json字符串的解析方法,这样就能够自己学会调用更多互联网上开放的接口。

内容概要

本篇文章为大家演示如何在微信公众帐号上实现“智能翻译”,本例中翻译功能是通过调用“百度翻译API”实现的。智能翻译是指用户任意输入想要翻译的内容(单词或句子),系统能自动识别用户采用的语言,并将其翻译为其他语言,目前支持的翻译方向:中->英、英->中和日->中。下面我们来看看智能翻译最终做出来的效果:


我们通过输入关键词“翻译”或者点击菜单“翻译”能够看到该功能的使用帮助,然后输入“翻译+内容”就能对内容进行翻译了。


百度翻译API介绍

点击查看百度翻译API使用说明,其实这份文档已经说的很详细了,笔者只是将我们调用该接口时最关心的内容摘取出来,主要如下:

1)通过发送HTTP GET请求调用百度翻译API。

2)百度翻译API请求地址:

  http://openapi.baidu.com/public/2.0/bmt/translate

3)调用API需要传递from、to、client_id和q四个参数,描述如下:

key value 描述
from 源语言语种:语言代码或auto 仅支持特定的语言组合,下面会单独进行说明
to 目标语言语种:语言代码或auto 仅支持特定的语言组合,下面会单独进行说明
client_id 开发者在百度连接平台上注册得到的授权API key 请阅读如何获取api key
q 待翻译内容 该字段必须为UTF-8编码,并且以GET方式调用API时,需要进行urlencode编码。
在调用接口前,我们要先获取到api key。获取方式比较简单,根据提示一步步操作就可以,笔者就不再赘述了。
4)对于智能翻译,参数from和to的传都是auto。
4)参数q的编码方式为UTF-8,传递之前要进行urlencode编码。

5)接口返回结果示例如下:

{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"}]}
返回结果里的中文是unicode编码,需要通过json_decode进行转换,转换后的示例如下:

{
    "from": "en",
    "to": "zh",
    "trans_result": [
        {
            "src": "today",
            "dst": "今天"
        },
        {
            "src": "tomorrow",
            "dst": "明天"
        }
    ]
}

JSON处理工具包Gson介绍

Gson是Google提供的用于在Java对象和JSON数据之间进行转换的Java类库。通过使用Gson类库,我们可以将JSON字符串转成Java对象,反之亦然。下载地址:https://code.google.com/p/google-gson/downloads/list,Gson的使用比较简单,直接调用它的方法toJson()或fromJson()就能完成相应的转换,但需要注意的是:在使用Gson将json字符串转换成Java对象之前,需要先创建好与目标Java对象。读者可以在维基百科上学习它的使用示例http://zh.wikipedia.org/wiki/Gson


代码实现

1)创建与百度翻译API返回的JSON相对应的Java类

  1. importjava.util.List;
  2. /**
  3. *调用百度翻译api查询结果
  4. *
  5. *@authorliufeng
  6. *@date2013-10-21
  7. */
  8. publicclassTranslateResult{
  9. //实际采用的源语言
  10. privateStringfrom;
  11. //实际采用的目标语言
  12. privateStringto;
  13. //结果体
  14. privateList<ResultPair>trans_result;
  15. publicStringgetFrom(){
  16. returnfrom;
  17. }
  18. publicvoidsetFrom(Stringfrom){
  19. this.from=from;
  20. }
  21. publicStringgetTo(){
  22. returnto;
  23. }
  24. publicvoidsetTo(Stringto){
  25. this.to=to;
  26. }
  27. publicList<ResultPair>getTrans_result(){
  28. returntrans_result;
  29. }
  30. publicvoidsetTrans_result(List<ResultPair>trans_result){
  31. this.trans_result=trans_result;
  32. }
  33. }
注意:这里的类名可以任意取,但是成员变量的名字应于翻译API返回的JSON字符串中的属性名保持一致,否则将JSON转换成TranslateResult对象时会报错。

TranslateResult类中的trans_result属性是一个ResultPair集合,该类的代码如下:

  1. /**
  2. *结果对
  3. *
  4. *@authorliufeng
  5. *@date2013-10-21
  6. */
  7. publicclassResultPair{
  8. //原文
  9. privateStringsrc;
  10. //译文
  11. privateStringdst;
  12. publicStringgetSrc(){
  13. returnsrc;
  14. }
  15. publicvoidsetSrc(Stringsrc){
  16. this.src=src;
  17. }
  18. publicStringgetDst(){
  19. returndst;
  20. }
  21. publicvoidsetDst(Stringdst){
  22. this.dst=dst;
  23. }
  24. }
说明:这两个类的封装是Gson类库所要求的,如果读者不是用Gson解析json字符串,而是用JSON-lib,就没有必要封装这两个类。


2)接口调用

  1. importjava.io.BufferedReader;
  2. importjava.io.InputStream;
  3. importjava.io.InputStreamReader;
  4. importjava.io.UnsupportedEncodingException;
  5. importjava.net.HttpURLConnection;
  6. importjava.net.URL;
  7. importcom.google.gson.Gson;
  8. /**
  9. *
  10. *@authorliufeng
  11. *@date2013-10-21
  12. */
  13. publicclassBaiduTranslateService{
  14. /**
  15. *发起http请求获取返回结果
  16. *
  17. *@paramrequestUrl请求地址
  18. *@return
  19. */
  20. publicstaticStringhttpRequest(StringrequestUrl){
  21. StringBufferbuffer=newStringBuffer();
  22. try{
  23. URLurl=newURL(requestUrl);
  24. HttpURLConnectionhttpUrlConn=(HttpURLConnection)url.openConnection();
  25. httpUrlConn.setDoOutput(false);
  26. httpUrlConn.setDoInput(true);
  27. httpUrlConn.setUseCaches(false);
  28. httpUrlConn.setRequestMethod("GET");
  29. httpUrlConn.connect();
  30. //将返回的输入流转换成字符串
  31. InputStreaminputStream=httpUrlConn.getInputStream();
  32. InputStreamReaderinputStreamReader=newInputStreamReader(inputStream,"utf-8");
  33. BufferedReaderbufferedReader=newBufferedReader(inputStreamReader);
  34. Stringstr=null;
  35. while((str=bufferedReader.readLine())!=null){
  36. buffer.append(str);
  37. }
  38. bufferedReader.close();
  39. inputStreamReader.close();
  40. //释放资源
  41. inputStream.close();
  42. inputStream=null;
  43. httpUrlConn.disconnect();
  44. }catch(Exceptione){
  45. }
  46. returnbuffer.toString();
  47. }
  48. /**
  49. *utf编码
  50. *
  51. *@paramsource
  52. *@return
  53. */
  54. publicstaticStringurlEncodeUTF8(Stringsource){
  55. Stringresult=source;
  56. try{
  57. result=java.net.URLEncoder.encode(source,"utf-8");
  58. }catch(UnsupportedEncodingExceptione){
  59. e.printStackTrace();
  60. }
  61. returnresult;
  62. }
  63. /**
  64. *翻译(中->英英->中日->中)
  65. *
  66. *@paramsource
  67. *@return
  68. */
  69. publicstaticStringtranslate(Stringsource){
  70. Stringdst=null;
  71. //组装查询地址
  72. StringrequestUrl="http://openapi.baidu.com/public/2.0/bmt/translate?client_id=AAAAAAAAAAAAAAAAAAAAAAAA&q={keyWord}&from=auto&to=auto";
  73. //对参数q的值进行urlEncodeutf-8编码
  74. requestUrl=requestUrl.replace("{keyWord}",urlEncodeUTF8(source));
  75. //查询并解析结果
  76. try{
  77. //查询并获取返回结果
  78. Stringjson=httpRequest(requestUrl);
  79. //通过Gson工具将json转换成TranslateResult对象
  80. TranslateResulttranslateResult=newGson().fromJson(json,TranslateResult.class);
  81. //取出translateResult中的译文
  82. dst=translateResult.getTrans_result().get(0).getDst();
  83. }catch(Exceptione){
  84. e.printStackTrace();
  85. }
  86. if(null==dst)
  87. dst="翻译系统异常,请稍候尝试!";
  88. returndst;
  89. }
  90. publicstaticvoidmain(String[]args){
  91. //翻译结果:Thenetworkreallypowerful
  92. System.out.println(translate("网络真强大"));
  93. }
  94. }
代码解读:
1)第21-53行封装了一个http请求方法httpRequest(),相信读过之前教程的读者已经很熟悉了。

2)第61-69行封装了一个urlEncodeUTF8()方法,用于对url中的参数进行UTF-8编码。

3)第81行代码中的client_id需要替换成自己申请的api key。

4)第83行代码是对url中的中文进行编码。以后凡是遇到通过url传递中文参数的情况,一定要显示地对中文进行编码,否则很可能出现程序在本机能正常运行,但部署到服务器上却有问题,因为本机与服务器的默认编码方式可能不一样。

5)第88行代码就是调用百度翻译API。

6)第90行代码是使用Gson工具将json字符串转换成TranslateResult对象,是不是发现Gson的使用真的很简单?另外,前面提到过调用百度翻译API返回的json里如果有中文是用unicode表示的,形如“\u4eca\u5929”,那为什么这里没有做任何处理?因为Gson的内部实现已经帮我们搞定了。


公众账号后台调用

在公众账号后台,需要对接收到的文本消息进行判断,如果是以“翻译”两个字开头的,就认为是在使用智能翻译功能,然后将“翻译”两个字之后的内容作为翻译对象,调用API进行翻译;如果输入的只有“翻译”两个字,就提示智能翻译功能的使用指南。关键代码如下:

  1. //文本消息
  2. if(WeixinUtil.REQ_MESSAGE_TYPE_TEXT.equals(msgType)){
  3. Stringcontent=requestMap.get("Content").trim();
  4. if(content.startsWith("翻译")){
  5. StringkeyWord=content.replaceAll("^翻译","").trim();
  6. if("".equals(keyWord)){
  7. textMessage.setContent(getTranslateUsage());
  8. }else{
  9. textMessage.setContent(BaiduTranslateService.translate(keyWord));
  10. }
  11. out.print(WeixinUtil.textMessageToXml(textMessage));
  12. }
  13. }
第7行getTranslateUsage()方法得到的就是智能翻译功能的使用指南,代码如下:

  1. /**
  2. *Q译通使用指南
  3. *
  4. *@return
  5. */
  6. publicstaticStringgetTranslateUsage(){
  7. StringBufferbuffer=newStringBuffer();
  8. buffer.append(XiaoqUtil.emoji(0xe148)).append("Q译通使用指南").append("\n\n");
  9. buffer.append("Q译通为用户提供专业的多语言翻译服务,目前支持以下翻译方向:").append("\n");
  10. buffer.append("中->英").append("\n");
  11. buffer.append("英->中").append("\n");
  12. buffer.append("日->中").append("\n\n");
  13. buffer.append("使用示例:").append("\n");
  14. buffer.append("翻译我是中国人").append("\n");
  15. buffer.append("翻译dream").append("\n");
  16. buffer.append("翻译さようなら").append("\n\n");
  17. buffer.append("回复“?”显示主菜单");
  18. returnbuffer.toString();
  19. }

说明:希望通过本例的学习,除了掌握百度翻译API的调用之外,读者还能够掌握json字符串的解析方法,这样就能够自己学会调用更多互联网上开放的接口。


分享到:
评论

相关推荐

    微信公众帐号开发教程

    网络收集整理 [027] 微信公众帐号开发教程第3篇-开发模式启用及接口配置 - 柳峰的专栏 - 博客频道 - CSDN.NET ...[041] 微信公众帐号开发教程第17篇-应用实例之智能翻译 - 柳峰的专栏 - 博客频道 - CSDN.NET

    JAVA微信开发资料

    微信公众帐号开发教程第 17 篇-应用实例之智能翻译132 微信公众帐号开发教程第 18 篇-应用实例之音乐搜索140 微信公众平台开发教程第 19 篇-应用实例之人脸检测152 微信公众平台开发教程第 20 篇-新手解惑 40 则 169...

    微信公众帐号开发教程第3篇-开发模式启用及接口配置

    微信公众帐号开发教程第3篇-开发模式启用及接口配置

    微信公共账号开发教程

    2. 微信公众帐号开发教程第2篇-微信公众帐号的类型(普通和会议) 3. 微信公众帐号开发教程第3篇-开发模式启用及接口配置 . 微信公众帐号开发教程第5篇-各种消息的接收与响应 6. 微信公众帐号开发教程第6篇-文本...

    微信小程序开发图解案例教程-源代码

    微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码微信小程序开发图解案例教程-源代码...

    java开发微信公众平台

    微信公众帐号开发教程第1 篇-引言 微信公众帐号开发教程第2 篇-微信公众帐号的类型(普通和会议) 微信公众帐号开发教程第3 篇-开发模式启用及接口配置 微信公众帐号开发教程第4 篇-消息及消息处理工具的封装 微信...

    微信开发实例 微信公众平台开发 之微信接口前期准备

    微信开发实例 微信公众平台开发教程-深入浅出微信公众平台实战开发(微网站、LBS云、Api接口调用、服务号高级接口)1.微信接口前期准备。由北风网提供,微信开发实例微信公众平台基础篇: 1)微信公众平台简介:开发...

    微信公众平台应用开发实战-完整扫描版 pdf 文档

    微信公众平台应用开发实战-完整扫描版.pdf 全书一共9章,在逻辑上分为四大部分:第一部分(第1章)介绍了微信公众平台的开发模式、数据交互方式,以及开发公众平台应用所需要的各项技术;第二部分(第2~4章)首先...

    微信公众平台开发入门教程

    微信公众平台开发入门教程

    微信公众平台最佳实践-源代码-方倍工作室

    2013年10月17号,我们在QQ空间发布了新版的微信公众平台开发入门教程链接后,网友我叫不熬夜☺在空间中回复告诉我们,他之前通过学习我们的微信开发教程赚到了2000元钱,而他当时还只是一名学生。这条回复记录至今还...

    微信公众平台开发实例教程-源代码

    微信公众平台开发实例教程-源代码

    微信小程序开发教程大全-2022-6-18

    微信小程序开发教程笔记

    微信公众账号开发教程

    接触微信公众帐号已经有两个多月的时间了,在这期间,除了陆续完善...所以,就有了写微信公众帐号开发教程的想法,将学习到的技术经验分享出来,帮助更多需要的朋友,也希望借此认识同行的朋友,共同交流,共同进步!

    微信公众平台开发教程,Java

    微信公众平台的开发教程,用Java写的,挺有借鉴的意义

    微信公众平台开发教程Java版

    微信公众平台开发教程Java版 微信公众平台开发教程Java版

    微信公众平台从入门到精通1-17

    第五章 资讯应用实例 第六章 公众账号自动回复操作案例 番外篇 微信会议公众账号详解 第七章 公众平台开发模式介绍 第八章 新浪云计算平台注册和使用 第九章 用微信开发模式做欢迎词 第十章 公众账号发送欢迎图文...

    微信公众平台应用开发实战-高清-2013年9月

    微信公众平台应用开发实战-高清-2013年9月,分享给所有需要的人!

    微信公众平台开发教程4

    微信公众平台开发教程,适合初学者了解入门,用的是php语言,简单易懂,欢迎下载

    微信小程序-微信小程序开发-个人学习实例

    weather:这是我的第一个微信小程序- 天气实例 robot:这是一个问答机器人的小例子 joke:这是笑话大全实例,有纯文字的笑话,也有图片信息 constellation:这是一个集星座运势、历史上的今天、QQ吉凶查询为一体的小...

Global site tag (gtag.js) - Google Analytics