我之前的文章 微信程序开发系列教程(一)开发环境搭建 介绍了微信开发环境的搭建,这篇文章我们就来一步步开发一些具体的功能。
功能需求:当有微信用户关注了您的公众号之后,您用JavaScript发送一个欢迎消息给这个粉丝。
具体实现
我们登陆微信公众号的控制台后,点开发-> 基本配置:
能看到我们配置的微信消息服务器的地址。在我第一篇教程里讲到,我们在本地用nodejs开发一个Web服务器,然后部署到您喜欢的云平台,比如腾讯云,阿里云,百度云等等(我选的是云平台Heroku),然后把部署后应用的url维护到微信公众号控制台的服务器配置,如下图所示。维护好之后,微信用户关注该公众号或者给该公众号发送的消息,就会通过微信平台投递到您的nodejs应用,我们在里面就可以编程实现一些需求了。下文将该nodejs应用称为“消息服务器”。
我们首先用nodejs的express module获得一个app对象:
var express = require('express');
var app = express();
当有微信用户关注您的公众号时,微信平台会发送一个HTTP post请求到您的消息服务器。您需要编程响应这个post请求。
app.route('/').post(function(req,res){
var content;
// 把微信平台发送的HTTP post的内容存储到变量content里
req.on("data",function(data){
content = data.toString("utf-8");
}
);
req.on("end",function(){
console.log("new http post: " + content );
// 打印HTTP post请求,做调试用
// 从微信平台发送的HTTP请求里解析出事件对象。如果是粉丝点关注,事件类型为subscribe。
var msgType = formattedValue(getXMLNodeValue('MsgType', content));
// 有粉丝点了关注按钮啦
if( event === "subscribe"){
// 回复一条欢迎消息给粉丝
var replyxml = replyMessage(content, "欢迎欢迎,终于等到您了!");
res.send(replyxml);
}
}
上述代码逻辑很清晰,看注释都易懂。关键就是如何把欢迎消息回复给点了关注按钮的粉丝。
核心逻辑在replyMessage函数里,这个函数的任务是将粉丝的openID从微信平台发给消息服务器的HTTP post内容中解析出来。代码如下:
输入参数1: 微信平台发给消息服务器的HTTP post全部内容
输入参数2:准备给粉丝推送的欢迎消息
输出参数:准备通过HTTP返回给粉丝的欢迎消息的微信报文,需符合微信定义的消息规范,具体规范如下代码所示。
module.exports = function(originalBody, contentToReply){
// 从原始报文里提取出消息的接收方
var ToUserName = getXMLNodeValue('ToUserName', originalBody);
// 从原始报文里提取出消息的发送方
var FromUserName = getXMLNodeValue('FromUserName',originalBody);
var CreateTime = getXMLNodeValue('CreateTime',originalBody);
// 告诉微信平台这条消息的类型是文本消息
var MsgType = "<![CDATA[text]]>";
// 准备将欢迎消息的文字内容加入消息报文
var Content = contentToReply;
// 开始拼装准备发送给微信粉丝的消息报文
var xml = '<xml><ToUserName>'+FromUserName+'</ToUserName><FromUserName>'+ToUserName+'</FromUserName><CreateTime>'+CreateTime+'</CreateTime><MsgType>'
+ MsgType + '</MsgType><Content>'+Content+'</Content></xml>';
console.log("xml to be sent: " + xml);
// 打印消息报文
return xml;
// 返回消息报文
}
;
要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:
相关推荐
微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的应用服务。在这个“微信小程序开发项目教程(慕课版)-源码.zip”压缩包中,你将获得一个完整的...
微信小程序是一种轻量级的应用开发平台,由腾讯公司于2017年推出,它允许开发者在无需安装应用的情况下提供类似原生应用的用户体验。在这个“微信小程序教程.zip”压缩包中,我们可以期待找到一系列详细的教学资料,...
### 微信小程序开发图解案例教程知识点梳理 #### 1. 微信小程序概述 - **起源与发展**:微信小程序是由腾讯公司在2016年1月9日启动研发,2017年1月9日正式发布的轻量级应用程序。它的设计理念在于“触手可及”与...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,尤其是智能手机用户。它的出现使得开发者能够构建...如果你是小程序开发的新手,跟随这个系列教程进行学习,相信你会很快上手并能独立完成小程序的开发项目。
通过这系列视频教程的学习,你将能够独立开发出功能完善、用户体验良好的微信小程序,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅。实践是检验真理的唯一标准,理论知识结合实际操作,才能真正掌握微信...
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用。小程序也可以看作是H5应用的一种延伸,但与H5不同的是,微信小程序运行在微信内部,能够调用微信...
本教程“微信小程序开发制作 视频教程入门到精通小程序源码模板带后台”旨在帮助初学者快速掌握微信小程序的开发技能,从基础到高级,一步步引领开发者构建自己的小程序。 1. **开发环境搭建**:首先,学习者需要...
微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,主要应用于移动端,旨在提供便捷的、无需下载安装即可使用的应用体验。本教程是针对初学者的微信小程序开发课程,通过十个视频逐步讲解,旨在帮助学习者掌握...
1. 微信小程序:微信小程序是腾讯公司推出的一种轻量级应用开发平台,用户无需下载安装即可使用,适用于零售、服务、娱乐等多个领域,美妆行业也不例外。开发者可以利用微信小程序的API和框架开发出具有丰富功能的...
1. **源码**:这是整个小程序的核心部分,由一系列的 `.wxml`(微信小程序的XML结构文件,负责页面结构)、`.wxss`(样式表文件,类似CSS,用于定义页面样式)、`.js`(JavaScript文件,处理业务逻辑)和`.json`...
电影资讯类微信小程序源码是一种基于微信平台的轻量级应用程序开发项目,旨在为用户提供便捷的电影信息查询和浏览服务。这款小程序利用了微信提供的Web开发者工具,这是一套集成开发环境,支持代码编辑、预览和调试...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,尤其在微信生态系统内,为用户提供便捷的服务和丰富的交互体验。在这个“微信小程序开发-旅游小程序案例源码”中,我们可以深入学习到如何构建一个以旅游为...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的应用体验。"一个为微信小程序开发准备的基础骨架" 是为了帮助开发者快速搭建微信小程序项目而设计...
微信开发者工具是一款专为微信小程序设计的集成开发环境,它为开发者提供了全方位的开发支持,包括代码编辑、调试、预览、发布等一系列功能。这款工具是基于JavaScript开发的,因此对于想要进入微信小程序领域的...
微信小程序是一种轻量级的应用开发平台,由腾讯公司推出,它允许开发者通过简单的JavaScript、WXML(微信小程序标记语言)和WXSS(微信小程序样式语言)来构建原生的移动应用界面。在构建圆形菜单时,我们将主要使用...
标签“JavaScript开发-微信小程序”提示我们,这个资源包可能包含了JavaScript在微信小程序中的实际应用案例、教程、API文档和库。JavaScript在微信小程序中主要用于编写业务逻辑,通过调用微信小程序提供的API接口...
本教程“零基础微信小程序开发”专为初学者设计,旨在帮助新手快速入门并掌握微信小程序的开发流程。 1. **开发环境准备** - 安装微信开发者工具:微信官方提供了专门的开发者工具,它集成了代码编辑、预览、调试...
这份"01_微信小程序官方开发指南文档(带目录)"是微信官方提供的详细教程,旨在帮助开发者快速掌握微信小程序的开发技巧。 一、微信小程序开发环境搭建 在开始微信小程序的开发之前,你需要安装微信开发者工具。这...
这个“微信小程序实例汇总 完整项目源代码”压缩包很可能是为学习和实践微信小程序开发准备的一系列示例项目。 1. **小程序框架与开发工具** 微信小程序基于微信自己的开发框架WXML(WeChat Markup Language)和...
微信小程序是一种轻量级的应用开发平台,主要针对移动端,由腾讯公司推出,旨在提供便捷的、无需下载安装即可使用的应用服务。在这个项目中,我们关注的是一个特定的微信小程序——滴滴拼车小程序的源码。滴滴拼车是...