一、简介

看完这篇教程,你绝对能在半小时以内学会使用Bmob,并开发属于自己的微信公众号!

 

使用bmob有什么好处,下面一一为你道来:

Ÿ   不需要购买服务器,不需要懂linux,不需要懂运维知识,零成本地拥有属于自己的后台系统。

Ÿ   不在需要mysql,轻松存储和获取数据,同时提供了一个方便的数据管理后台。

Ÿ   提供灵活的“云端代码”,其融合了bmob的数据服务和大量的第三方服务,让你轻松应对复杂的业务逻辑。同时云端代码能被第三方平台调用,再也不需要php,java等复杂的web服务。

本教程将引导你完成如下任务:

Ÿ   创建bmob应用

Ÿ   使用bmob云端代码实现微信公众平台的开发


二、创建bmob应用

在这节中,将会从基本的创建bmob账号开始,到创建应用,数据的基本操作,到云端代码的运行,使读者对bmob的功能有初步的了解。

 

在这个教程中,用到了bmob的两个功能:

Ÿ   数据存储:把订阅者发到微信公众号的信息存储起来。

Ÿ   云端代码:微信后台回调云端代码后,完成公众号所需的业务逻辑:信息存储,把信息加工后返回给订阅者的微信。

 

1.注册bmob账号

在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名、邮箱、设置密码。

注册成功,到注册所填入的邮箱查看bmob发送的邮件,点击其中激活链接后,就能使用邮箱和密码登录bmob。



2. 创建应用

登录后,点击“我的控制台”,进入到了管理后台。


在bmob中,一个用户可以创建多个应用,每个应用拥有其所属的专用数据库,多个应用之间相互独立。

 

用户需要创建一个应用,先点击管理后台中的“创建应用”按钮,在创建应用的输入框中输入app的名称,点击“创建应用”,就能成功创建应用。




3. 数据的基本操作     

创建应用成功后,开发者在管理后台点击刚才创建的应用,进入到应用的后台界面,其中最常用的是“数据浏览界面”,在该界面提供了便利的图形化操作,让开发者轻松地对该应用所属的数据库进行表的增删,数据的增删改查等操作。


4. 云端代码


4.1云端代码的基本知识

对于一些复杂的应用,您可能希望增加一些特有的业务逻辑,并能灵活掌控,Bmob 云端代码提供了这种灵活性,可以让您的代码直接在 Bmob云上运行, 通过SDK(Android,iOS),restful api或者任何http的方式调用,即可获取结果数据。

 

云端代码的编码采用nodejs语法,简单易用。在云端代码的编辑器中,系统默认生成了云端代码的入口函数function onRequest(request, response, modules),你可以根据自己的需求实现业务逻辑代码。

 

在云端代码界面,创建一个名为"helloworld"的云端代码,生成云端代码后,可看到云端代码生成的入口方法。



开发者按照云端代码的相关语法和提供的模块编写云端代码,就能实现各种业务逻辑。

 

从云端代码的入口方法function onRequest(request, response, modules)可知,云端代码包含三个模块,分别是request模块、response模块和modules模块。





4.2 用云端代码实现"helleworld"



下面用云端代码输出一个经典的"helleworld"程序,让开发者对编写云端代码有个初步的了解。

输出"helleworld"的云端代码如下:







在"helloworld"的云端代码编辑界面上输入上面的代码,按下“保存”按钮就能把编辑完毕的代码保存在云端,如下图所示:



怎么运行上面编辑完毕云端代码呢?bmob在每个云端代码的编辑界面下方提供了一个方便的调试工具




整个云端代码的执行流程如图:



4.3 调用云端代码的方式

4.3.1 获取Secret Key




4.3.2以Get的方式调用云端代码



其中:

Ÿ   a12af19a1b8bf434:应用的Secret Key。

Ÿ   helloworld:云端代码的名称


4.3.3 以Post的方式调用云端代码



其中:

 

Ÿ   a12af19a1b8bf434:应用的Secret Key。

Ÿ   helloworld:云端代码的名称



4.4 云端代码操作数据库初步入门

bmob提供了数据库对象(oData)用于操作数据。

 

用云端代码往数据表“message”插入一条数据,可用如下的代码




三、微信公众平台的开发

在本节中,通过bmob云端代码开发微信公众平台,实现一个反馈意见收集的功能: 1.把订阅者发送到公众号后台的反馈意见存储在上一节在bmob中创建的表“message”中。 2.订阅者提交反馈意见后,公众号自动给订阅者发送消息,表示消息已收到。



1. 创建云端代码

创建一个名为"feedback"的云端代码用于实现上面的功能,代码如下:



这个云代码的内容暂时看不懂没关系,下面会逐渐解释其中的含义。



2. 启用微信公众号的开发模式

只有启用微信公众号的开发模式后,才能把订阅者发送到微信公众号后台的消息发送到bmob云端代码中进行处理。

 

微信公众平台地址:https://mp.weixin.qq.com

 

登录微信公众平台后台,在左侧列表中最下方,找到“开发者中心”,点击进入。进入服务器配置填写框,点击“修改配置”按钮,点击“启用”,在弹出框中点击确定。



3. 数据收发原理及消息数据格式

云端代码开发微信公众号有两个重要原理一定要弄明白:

 

Ÿ   变为开发模式时,微信公众号后台往配置的url发送校验请求,这个过程云端代码校验信息的原理。

Ÿ   云端代码收发微信公众号后台传递过来的消息的原理。

3.1变为开发模式时的消息校验原理

在开发者首次提交验证申请时,微信公众号后台将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(signature)的效验来判断此条消息的真实性。

 

这4个参数的含义如下:

 

Ÿ   signature:微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。

Ÿ   timestamp:时间戳。

Ÿ   nonce:随机数

Ÿ   echostr:随机字符串

 

此后,每次开发者接收用户消息的时候,微信公众号后台也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。

 

开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信公众号后台,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。

 

消息校验流程如下:

 

a.将token、timestamp、nonce三个参数进行字典序排序。

b.将三个参数字符串拼接成一个字符串进行sha1加密。

c.开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。

 

整个流程如图所示:



使用的云端代码如下:




3.2云端代码收发微信公众号后台传递过来的消息的原理

在上一节的演示中,订阅者往该公众号发送消息后,返回已收到反馈内容的消息。

 

这一原理的消息流程如图所示:



云端代码内部通过下面的代码处理用户发送的消息:



四、总结

通过本教程,你得到了以下收获:

 

了解bmob应用和云端代码的功能。

在不需要搭建服务器,不需要懂得基本的运维知识下,使用bmob云端代码在30分钟内实现微信公众平台的开发,完了消息存储和消息自动回复这两个功能。