使用Bmob云端代码开发微信公众平台(教程)
目录
3.2云端代码收发微信公众号后台传递过来的消息的原理...21
一、简介
这篇微信公众平台开发教程将带领你一步一步领略Bmob后端云开发的方便性,并让你轻松学会用Bmob进行微信公众号平台开发。
使用bmob有什么好处,下面一一为你道来:
Ÿ 不需要购买服务器,不需要懂linux,不需要懂运维知识,零成本地拥有属于自己的后台系统。
Ÿ 不在需要mysql,轻松存储和获取数据,同时提供了一个方便的数据管理后台。
Ÿ 提供灵活的“云端代码”,其融合了bmob的数据服务和大量的第三方服务,让你轻松应对复杂的业务逻辑。同时云端代码能被第三方平台调用,再也不需要php,java等复杂的web服务。
本教程将引导你完成如下任务:
Ÿ 创建bmob应用
Ÿ 使用bmob云端代码实现微信公众平台的开发
二、创建bmob应用
在这节中,将会从基本的创建bmob账号开始,到创建应用,数据的基本操作,到云端代码的运行,使读者对bmob的功能有初步的了解。
在这个教程中,用到了bmob的两个功能:
Ÿ 数据存储:把订阅者发到微信公众号的信息存储起来。
Ÿ 云端代码:微信后台回调云端代码后,完成公众号所需的业务逻辑:信息存储,把信息加工后返回给订阅者的微信。
1.注册bmob账号
在网址栏输入www.bmob.cn或者在百度输入Bmob进行搜索,打开Bmob官网后,点击右上角的“注册”,在跳转页面填入你的姓名、邮箱、设置密码,如下图1所示:
图1
注册成功,到注册所填入的邮箱查看bmob发送的邮件,点击其中激活链接后,就能使用邮箱和密码登录bmob。
2. 创建应用
登录后,点击“我的控制台”,进入到了管理后台,如下图2所示:
图2
在bmob中,一个用户可以创建多个应用,每个应用拥有其所属的专用数据库,多个应用之间相互独立。
用户需要创建一个应用,先点击管理后台中的“创建应用”按钮,如下图3所示:
图3
在创建应用的输入框中输入app的名称,点击“创建应用”,就能成功创建应用,如下图4所示:
图4
3. 数据的基本操作
创建应用成功后,开发者在管理后台点击刚才创建的应用,进入到应用的后台界面,其中最常用的是“数据浏览界面”,在该界面提供了便利的图形化操作,让开发者轻松地对该应用所属的数据库进行表的增删,数据的增删改查等操作,如下图5所示:
图5
每个应用的数据库都有一个默认的表"_User",其提供了一些常用的字段来记录该应用的用户信息。
开发者需要增加新的表来存储信息时,点击“添加表”按钮,输入表名,就能创建一张新表,如下图6所示:
图6
在"添加新的表"界面中,选项“自定义”选项即可创建一张新的普通表,另外两个选项是较高级的功能,在本教程中暂时不需要用到。
在这里,创建了一张名为"message"的表,用于存储订阅者发送到公众号后台的信息。
在表"message"的操作界面中可看到,表"message"有4个默认的字段,其中3个最常用字段的含义如下:
Ÿ objectId:该行的id,objectId的作用和mysql中的经常使用的id类似,用于唯一标示一行。
Ÿ createdAt:改行数据的创建时间。
Ÿ updatedAt:改行数据的最后修改时间。
当操作一行数据的时候,以上的3个字段的值由bmob后台自动管理。另外这些字段的名字是保留的,你不能自行设置它们。
由于表"message"是需要把订阅者发到微信公众号的信息存储起来,存储信息的两个属性:谁发送这条信息,信息的内容,所以添加下面所需的字段:
userId:订阅者的id,String类型。 content:发送的内容,String。
通过图8的“添加一列”功能,依次把userId和content这两个字段添加到表"message"中。
图8
注意:在用云端代码添加数据时,如果发现其所操作的表和所操作的列不存,bmob后台会自动创建。这里为了演示bmob的数据浏览操作,所以才手动创建一次。
4. 云端代码
阅读了上面的“数据的基本操作”的内容后,读者可能有个疑问,怎么对表的数据进行增删改查等操作呢?除了可以在"数据浏览"界面可以进行操作外,也可以通过云端代码进行数据的增删改查,开发者也可以通过云端代码完成更加复杂的业务逻辑。
4.1云端代码的基本知识
对于一些复杂的应用,您可能希望增加一些特有的业务逻辑,并能灵活掌控,Bmob 云端代码提供了这种灵活性,可以让您的代码直接在 Bmob云上运行, 通过SDK(Android,iOS),restful api或者任何http的方式调用,即可获取结果数据。
云端代码的编码采用nodejs语法,简单易用。在云端代码的编辑器中,系统默认生成了云端代码的入口函数function onRequest(request, response, modules),你可以根据自己的需求实现业务逻辑代码。
在云端代码界面,创建一个名为"helloworld"的云端代码,如下图9所示:
图9
生成云端代码后,可看到云端代码生成的入口方法,如下图10所示:
图10
开发者按照云端代码的相关语法和提供的模块编写云端代码,就能实现各种业务逻辑。
从云端代码的入口方法function onRequest(request, response, modules)可知,云端代码包含三个模块,分别是request模块、response模块和modules模块。
4.1.1 request模块
request模块用于获取传入的参数。由于现在调用云端代码有两种方式(get和post),所以获取传入的参数的方式需要使用不同的方法。
当用get请求的方式传入参数,可用如下的方法获取参数的值:
request.query.name //获取传入参数name的值
当用post请求的方式传入参数,可用如下的方法获取参数的值:
request.body.name //获取传入参数name的值
4.1.2 response模块
response为云端代码的信息回传模块,该模块包含了一个end方法,实现将云端的执行结果(如查询的数据)返回给SDK或者RestApi等调用端:
response.end(string result)
4.1.3 modules模块
modules是Bmob云端代码提供给大家的各种对象处理的模块,包括数据库对象(oData)、文件对象(oFile)、地理位置对象(oLocation)、关联关系对象(oRelation)、原子操作对象(oAtom)、数据批量操作对象(oBatch)、数组对象(oArray)、消息推送对象(oPush)、云代码对象(oFunctions)、邮件发送对象(oMail)、同步对象(oAsync)、HTTP对象(oHttp)、字符编码转换对象(oEncodeing)、事件对象(oEvent)、bql对象(oBql)、html元素解析对象(oHtmlparser)、加密对象(oCrypto)。云端代码想要调用这些对象时,只需要用如下的方法即可获取:
//获取数据库对象
var db = modules.oData;
//下面进行其他操作
4.2 用云端代码实现"helleworld"
下面用云端代码输出一个经典的"helleworld"程序,让开发者对编写云端代码有个初步的了解。
输出"helleworld"的云端代码如下:
function onRequest(request, response, modules) {
response.end("this is hello world"); //返回字符串"this is hello world"
}
在"helloworld"的云端代码编辑界面上输入上面的代码,按下“保存”按钮就能把编辑完毕的代码保存在云端,如下图11所示:
图11
怎么运行上面编辑完毕云端代码呢?bmob在每个云端代码的编辑界面下方提供了一个方便的调试工具,如下图12所示:
这个工具有下面的功能:
Ÿ 可选择以http"post"或者"get"的方法运行云端代码。
Ÿ 选择request的参数和对应值:可添加传入云端代码的request的参数和对应值,参数的数目可以通过“再添加一个”按钮调整。
需要运行名称为"helloworld"的云端代码,在"helloworld"的云端代码编辑界面下点击“发送请求”按钮,就能在调试工具上看到云端代码返回的字符串“this is hello world”,如下图13所示:
图13
整个云端代码的执行流程如图13.1所示:
图13.1
4.3 调用云端代码的方式
除了使用bmob提供的云端代码调式工具外,bmob允许开发者以http的方式直接调用云端代码。
4.3.1 获取Secret Key
用户需要以http的方式运行云端代码,需要先确定应用的Secret Key。调用云端代码时,通过Secret Key标识一个应用,获取Secret Key的路径:管理后台->应用密钥->Secret Key, 如下图14所示:
图14
注意:请妥善保管Secret Key,避免Secret Key的泄露!!!
4.3.2以Get的方式调用云端代码
下面展示了以Get的方式调用云端代码,在浏览器中输入下面的url: