nodejs + BAE 搭建微信公众号开发平台

闲来无事建立了一个微信公众帐号,名曰“深圳生活小助手”, 关注的人很少,平时发一些深圳新闻,趣事啥的,为了丰富公众号的内容,准备添加一些便民查询功能,例如天气预报、快递查询等等。 因而就有了本文的内容。 深圳的读者扫描关注支持下啊。。。node

闲话很少说,本文主要介绍的就是如何基于nodejs和百度云搭建微信公众号开发平台,下一节介绍如何基于该平台实现了一个简单的天气预报查询功能的小例子。git

 1. 使用Express搭建本地站点

Express 是一个简洁、灵活的 node.js Web 应用开发框架, 它提供一系列强大的特性,帮助你建立各类 Web 和移动设备应用。本文不具体展开讨论Express,你只要知道它是一个实现了nodejs的MVC框架就能够了,有兴趣的读者可参考 http://www.expressjs.com.cn/ 作更深刻的了解。如无特殊说明,咱们的开发环境都是windows环境。github

确保你的机器上已经安装了nodejs,并能够成功运行npm命令。在命令提示符中执行以下命令安装express:web

>npm install -g express@3.5.0

在这里咱们指定express版本号的目的是由于新版的express将express和它的命令行工具分离开了,安装新版本的express后,还须要安装相应的命令行工具,为了简便起见,咱们指定了express的版本。接下来,就是建立站点目录,命令行以下所示:express

>express szassis

szassis是网站根目录的名字,建立完成后,进入到该目录,安装站点所须要的依赖包,命令行以下:npm

>cd szassis
>npm install

命令执行完成后,为了测试站点是否成功,咱们首先启动站点服务器,命令行以下:json

>npm start

新建立的站点默认运行在3000端口上,在浏览器里访问http://localhost:3000,若是能够看到express的欢迎页面,就表示咱们的站点建立成功了。windows

2. 在百度云上建立应用

申请百度云帐号,建立一个百度应用,选中使用BAE,类型选择nodejs-web,代码版本工具选择svn(视我的偏好而定,也能够选择git),以下图所示:浏览器

建立完成后,在应用引擎中就能够看到咱们新建立的工程,在这里能够复制svn的地址,以下图所示:服务器

 

3. 关联百度云上存储的代码和本地代码

本地下载安装svn代码版本控制工具,在站点根目录文件夹szassis上点击右键,选择SVN checkout...,在弹出框中URL of repository中填写以前复制的svn地址,check out directory选择站点根目录,注意,因为此时根目录下已经有文件了,因此默认svn会建立一个子文件夹,咱们不须要这个子文件夹,因此修改输入指定到根目录,以下图所示:

点击ok,此时百度云上存储的代码文件就同步到了本地,打开站点根目录文件夹,作一下几步修改:

  1. 拷贝app.js文件的内容到server.js中,并删除app.js(因为百度云应用默认要求的入口文件时server.js,为了不麻烦,推荐继续使用server.js)
  2. 修改package.config文件,将入口文件由app.js改成server.js,同时命名name为szassis,代码以下:
    {
      "name": "szassis",
      "version": "0.0.1",
      "private": true,
      "scripts": {
        "start": "node server.js"
      },
      "dependencies": {
        "express": "3.5.0",
        "jade": "*"
      }
    }
  3. 修改server.js文件,将默认端口号由3000改成18080。(18080是百度云要求的默认端口号)
  4. 将修改后的文件提交到百度云,在站点根目录上选择SVN commit...,在弹出框中取消选择node_modules(该文件夹无需同步到百度云), 同时选中express建立其余的文件,点击ok,将更改同步到百度云上。

若是一切步骤都顺利的话,在浏览器中输入http://szassis.duapp.com/,将会看到express的欢迎语,咱们也能够修改相应的文件改变欢迎语言,或者直接建立一个更酷的首页,不过咱们要作的是和微信公众帐号的关联,因此这里就不进一步探讨了。

4. 微信公众号的接入认证和消息处理

咱们能够本身编写微信公众号的接入认证和消息处理方法,但因为这些方法是固定可重用的,因此这里咱们选择一个第三方的npm包wechat,wechat很好的封装了和微信公众号的通讯接口和消息接口,便于咱们将更多的精力放在编写实用程序上。在站点根目录安装wechat的命令行以下:

>npm install wechat

因为咱们无须将依赖包同步到百度云上,因此只须要在package.json中添加wechat的依赖关系就能够了,代码以下:

{
  "name": "szassis",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node server.js"
  },
  "dependencies": {
    "express": "3.5.0",
    "jade": "*",
    "wechat": "1.2.1"
  }
}

在sever.js中添加以下代码:

var wechat = require('wechat');

app.use(express.query()); app.use(
'/wechat', wechat('szassis', function (req, res, next) { var message = req.weixin; if(message.MsgType == 'text'){ res.reply({ type: "text", content: "you input " + message.Content}); } }));

这里app.use的第一个参数‘/wechat’指定了和微信公众号通讯的路径,即http://szassis.duapp.com/wechat,wechat函数的第一个参数就是和微信公众号通讯使用的token, 有关wechat的更多介绍参考:https://github.com/node-webot/wechat

5. 配置微信公众号

在微信公众号的管理后台选择开发者中心,在服务器配置中,选择修改配置,配置相应的选项,以下图所示:

点击提交,一切顺利的话会提示验证成功,点击启用按钮启用刚才的服务器配置,大功告成。试着在给公众号发几个信息验证下,结果以下图:

下一节咱们将会演示如何使用咱们搭建的开发平台,为公众号添加天气预报功能。

相关文章
相关标签/搜索