原文
探索中碰到的一些坑,虽然很简朴,但新手照样会被坑到,就轻微纪录一下吧,也当进修手册,最好去相识一下express,不是很难,这边只是简朴的设置,更高等的接口照样去看文档,模块或许本身完成都是能够的
民众号设置
起首你得有一个民众号,最好是效劳号,由于个人的定阅号许多功用不供应的,比方自定义菜单,固然没有也没紧要,能够用腾讯供应的测试号测试号.
测试号供应完整的功用,基础够用了。
接下来就是效劳器的设置了,这边要说一下,民众号效劳器的端口必需是80端口,所以本身效劳器最好用nginx代办,然则如许不好的是效劳端编辑代码老是很不轻易,提交也贫苦,所以本身测试的话照样用nat123或许花生壳映照当地端口吧。
然则nat123太慢了,发起运用花生壳,详细教程百度吧,很简朴的。
ps:本日看到了微信官方推出的一个浏览器插件,用来调试微信背景和页面的,挺好的。不过只能在qq浏览器内运用微信调试东西
上图是效劳器的接口设置
猎取受权
由于是基于node-wechat开辟的,所以底层的东西就不必管了,相识一下它的api就好,简朴来讲就是用三个参数天生署名与加密的字符串举行对照以取得受权。
我用的是wechat供应的api。只需处理好本身的营业就好。
装置:
npm i wechat --save-dev
与express夹杂运用
var wechat = require('wechat');
var config = {
token: 'token',
appid: 'appid',
encodingAESKey: 'encodinAESKey'//无足轻重
};
app.use(express.query());
app.use('/wechat', wechat(config, function (req, res, next) {
// 微信输入信息都在req.weixin上
var message = req.weixin;
if (message.FromUserName === 'diaosi') {
// 复兴屌丝(一般复兴)
res.reply('hehe');
} else if (message.FromUserName === 'text') {
//你也能够如许复兴text范例的信息
res.reply({
content: 'text object',
type: 'text'
});
} else if (message.FromUserName === 'hehe') {
// 复兴一段音乐
res.reply({
type: "music",
content: {
title: "来段音乐吧",
description: "一贫如洗",
musicUrl: "http://mp3.com/xx.mp3",
hqMusicUrl: "http://mp3.com/xx.mp3",
thumbMediaId: "thisThumbMediaId"
}
});
} else {
// 复兴高富帅(图文复兴)
res.reply([
{
title: '你来我家接我吧',
description: '这是女神与高富帅之间的对话',
picurl: 'http://nodeapi.cloudfoundry.com/qrcode.jpg',
url: 'http://nodeapi.cloudfoundry.com/'
}
]);
}
}));
轻微解释一下。token就是填设置的时刻天的token,appid也供应了。wechat(config, function (req, res, next)
下面就是受权胜利举行操纵,这边是依据关键字复兴。详细api请看api.
不过,这点功用肯定是不够用的,接下来就是wechat-api了,基础供应了一切的官方api。
底层完成
实在我也是菜鸟。这个是依据他人的文章总结的,
token+时候戳timestamp+随机数nonce->天生署名signiture
将三者举行加密与署名举行对照
以后每次都邑举行身份校验。
总结
简朴的也许就是这些了,虽然觉得没啥,当时也是掉进种种坑。但是背面另有更深的坑。