在这篇微信公众平台开发教程中,我们假定你已经有了Node.js语言程序基础。
本系列教程将引导你完成如下任务:
- 创建新浪云计算平台应用
- 启用微信公众平台开发模式
- 一、首先创建新浪云计算应用
-
申请账号
我们使用SAE新浪云计算平台作为服务器资源,并且申请Nodejs环境+MySQL数据库作为程序运行环境。
申请地址为:直接点击上述网址,可以看到右上角微博登录的链接。
点击进入之后,使用新浪微博账号登录
登录之后,按照提示注册个人信息即可。
创建新应用 http://www.cnblogs.com/txw1958/p/wechat-tutorial.html
回到首页,在菜单顶部选择 控制台 ,再选择 云应用SAE 。
-
进入SAE应用列表
点击下侧的创建新应用,这时会弹出提示, 禁止放置违法违规内容,点击继续创建,弹出如下窗口。
开发语言选择Nodejs,二级域名自己想一个名字,也可以就直接用自己的QQ号。应用名称可以用系统默认填的。
然后点击左下方的创建应用
应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的应用。
-
点击刚才创建的应用名称,进入应用主页。
点击左侧的应用管理下面的代码管理,
Nodejs起步代码 http://www.cnblogs.com/txw1958/p/wechat-tutorial.html
下述代码是一个微信接口文件,看不懂没有关系,你可以暂时不用弄明白它的意思。
初步的nodejs主要由两个文件组成(都创建在根目录即可):
1.第一个是package.json文件;
2.第二个是index.js;检验token,一点点自动回答例子
{
"name": "koa2_wx_subscription",
"version": "1.0.0",
"description": "weixin subscription",
"main": "index.js",
"scripts": {
"start": "node index.js"
},
"repository": {
"type": "git",
"url": "https://git.sinacloud.com/wxsubscription"
},
"engines": {
"node": "v6.6.0"
},
"keywords": [
"subscription"
],
"author": "Jun",
"license": "ISC",
"dependencies": {
"body-parser": "^1.5.2",
"express": "^4.8.0",
"node-wxeasy": "*",
"weixin-api": "^0.1.7"
}
}
<span style="color:#333333;">var weixin = require('weixin-api');
var express = require('express');
var app = express();
// 解析器
app.use(express.bodyParser());
// 接入验证
app.get('/', function(req, res) {
// 签名成功
if (weixin.checkSignature(req)) {
res.status(200).send(req.query.echostr);
} else {
res.status(200).send('fail 123');
}
});
// config 根据自己的实际配置填写
weixin.token = '</span><span style="color:#ff0000;">自己公众平台填写的token</span><span style="color:#333333;">'; </span><span style="color:#ff0000;">要对应起来一样的不然不行</span><span style="color:#333333;">
// 监听文本消息
weixin.textMsg(function(msg) {
console.log("textMsg received");
console.log(JSON.stringify(msg));
var resMsg = {};
switch (msg.content) {
case "文本" : </span><span style="color:#ff0000;">在公众号里面输入文本即可看到回复这是文本回复(前提是连接上服务器)</span><span style="color:#333333;">
// 返回文本消息
resMsg = {
fromUserName : msg.toUserName,
toUserName : msg.fromUserName,
msgType : "text",
content : "这是文本回复",
funcFlag : 0
};
break;
case "音乐" :
// 返回音乐消息
resMsg = {
fromUserName : msg.toUserName,
toUserName : msg.fromUserName,
msgType : "music",
title : "音乐标题",
description : "音乐描述",
musicUrl : "音乐url",
HQMusicUrl : "高质量音乐url",
funcFlag : 0
};
break;
case "图文" :
var articles = [];
articles[0] = {
title : "PHP依赖管理工具Composer入门",
description : "PHP依赖管理工具Composer入门",
picUrl : "http://weizhifeng.net/images/tech/composer.png",
url : "http://weizhifeng.net/manage-php-dependency-with-composer.html"
};
articles[1] = {
title : "八月西湖",
description : "八月西湖",
picUrl : "http://weizhifeng.net/images/poem/bayuexihu.jpg",
url : "http://weizhifeng.net/bayuexihu.html"
};
articles[2] = {
title : "「翻译」Redis协议",
description : "「翻译」Redis协议",
picUrl : "http://weizhifeng.net/images/tech/redis.png",
url : "http://weizhifeng.net/redis-protocol.html"
};
// 返回图文消息
resMsg = {
fromUserName : msg.toUserName,
toUserName : msg.fromUserName,
msgType : "news",
articles : articles,
funcFlag : 0
}
}
weixin.sendMsg(resMsg);
});
// 监听图片消息
weixin.imageMsg(function(msg) {
console.log("imageMsg received");
console.log(JSON.stringify(msg));
});
// 监听位置消息
weixin.locationMsg(function(msg) {
console.log("locationMsg received");
console.log(JSON.stringify(msg));
});
// 监听链接消息
weixin.urlMsg(function(msg) {
console.log("urlMsg received");
console.log(JSON.stringify(msg));
});
// 监听事件消息
weixin.eventMsg(function(msg) {
console.log("eventMsg received");
console.log(JSON.stringify(msg));
});
// Start
app.post('/', function(req, res) {
// loop
weixin.loop(req, res);
});
app.listen(process.env.PORT || 5050) </span><span style="color:#ff0000;">这里要注意一下,新浪云的nodejs服务器的端口是5050,填写其他端口应该会连接不上服务器会502</span>
这样的输出说明我们已经初步调通了