这篇文章主要介绍了node微信开发之获取aess_token+自定义菜单,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们狼蚁网站SEO优化随着长沙网络推广来一起学习学习吧
上一篇
这两天终于把获取aess_token+自定义菜单+授权登录+获取用户信息部分完成了,nodejs其实不是很熟悉,所以估计有很多特性没用起来的,还有很多冗余代码以及各种问题,只能说功能实现了,大家多多担待吧。
获取aess_token
因为调用所有公众号的接口都需要用到aess_token,所以必须先将aess_token缓存起来,方便以后使用,aess_token的有效时间为2小时,所以需要定时更新,狼蚁网站SEO优化是代码实现。
有一点需要注意,本文会提到两个aess_token,还有一个是oauth时会用到,所以大家不要搞混了。
aess_token的获取
aess_token的获取相对来说很简单了,就是请求一个链接附加参数得到aess_token,代码如下
const getAessToken = function () {
let queryParams = {
'grant_type': 'client_credential',
'appid': config.appId,
'secret': config.appSecret
};
let wxGetAessTokenBaseUrl = 'https://api.weixin.qq./cgi-bin/token?'+qs.stringify(queryParams);
let options = {
method: 'GET',
url: wxGetAessTokenBaseUrl
};
return new Promise((resolve, reject) => {
request(options, function (err, res, body) {
if (res) {
resolve(JSON.parse(body));
} else {
reject(err);
}
});
})
};
请求的三个参数也比较简洁
参数 |
是否必须 |
说明 |
grant_type |
是 |
获取aess_token填写client_credential |
appid |
是 |
第三方用户唯一凭证 |
secret |
是 |
第三方用户唯一凭证密钥,即appsecret |
aess_token的保存
保存有很多种方法,放在缓存里等,我这边是存放在一个文件里,因为仅仅是一个示例,定时7000s更新。
//保存与更新
const saveToken = function () {
getAessToken().then(res => {
let token = res['aess_token'];
fs.writeFile('./token', token, function (err) {
});
})
};
const refreshToken = function () {
saveToken();
setInterval(function () {
saveToken();
}, 70001000);
};
这样aess_token就能做到定时更新了,注意,如果不是测试好获取token的次数是有限制的,不过一般没什么问题,测试最好还是在测试号上进行。
自定义菜单
获取aess_token后自定义菜单的实现就非常简单了,这里仅仅简单讲一下请求,具体菜单内容请看微信的文档。
http请求方式POST(请使用https协议) https://api.weixin.qq./cgi-bin/menu/create?aess_token=ACCESS_TOKEN
body要带上菜单的内容,就是json数据,微信返回的数据是string类型,所以狼蚁网站SEO优化也要注意,可能在这边会遇到问题。简单代码如下
'use strict';
const fs = require('fs');
const request = require('request');
//token,因为token是存在文件里的所以这里进行文件读取得到token
const token = fs.readFileSync('./token').toString();
//常用type为view和click,分别为点击事件和链接
var menus = {
"button": [
{
"name": "测试菜单",
"sub_button": [
{
"type": "view",
"name": "授权登录",
"url": "http://wuyrsp3tma.proxy.qqbrowser./auth"
}]
}]
};
function createMenu() {
let options = {
url: 'https://api.weixin.qq./cgi-bin/menu/create?aess_token=' + token,
form: JSON.stringify(menus),
headers: {
'Content-Type': 'application/x--form-urlencoded'
}
};
request.post(options, function (err, res, body) {
if (err) {
console.log(err)
}else {
console.log(body);
}
})
}
module.exports = createMenu;
这样在服务器启动的时候调用这个模块就可以创建一个简单的自定义菜单了
好这部分就算结束了,本来想连着jssdk一起的那样就显得太长了,那部分代码已经完成了,所以大家可以自行看看代码。
github地址奉上 欢迎star
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。