node微信开发之获取access_token+自定义菜单
上一篇:自动回复的实现
这两天终于把获取access_token+自定义菜单+授权登录+获取用户信息部分完成了,nodejs其实不是很熟悉,所以估计有很多特性没用起来的,还有很多冗余代码以及各种问题,只能说功能实现了,大家多多担待吧。
获取access_token
因为调用所有公众号的接口都需要用到access_token,所以必须先将access_token缓存起来,方便以后使用,access_token的有效时间为2小时,所以需要定时更新,下面是代码实现。
有一点需要注意,本文会提到两个access_token,还有一个是oauth时会用到,所以大家不要搞混了。
access_token的获取
access_token的获取相对来说很简单了,就是请求一个链接附加参数得到access_token,代码如下:
const getAccessToken = function () { let queryParams = { 'grant_type': 'client_credential', 'appid': config.appId, 'secret': config.appSecret }; let wxGetAccessTokenBaseUrl = 'https://api.weixin.qq.com/cgi-bin/token"color: #ff0000">access_token的保存保存有很多种方法,放在缓存里等,我这边是存放在一个文件里,因为仅仅是一个示例,定时7000s更新。
//保存与更新 const saveToken = function () { getAccessToken().then(res => { let token = res['access_token']; fs.writeFile('./token', token, function (err) { }); }) }; const refreshToken = function () { saveToken(); setInterval(function () { saveToken(); }, 7000*1000); };这样access_token就能做到定时更新了,注意,如果不是测试好获取token的次数是有限制的,不过一般没什么问题,测试最好还是在测试号上进行。
自定义菜单
获取access_token后自定义菜单的实现就非常简单了,这里仅仅简单讲一下请求,具体菜单内容请看微信的文档。
http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create"htmlcode">'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.cc/auth" }] }] }; function createMenu() { let options = { url: 'https://api.weixin.qq.com/cgi-bin/menu/create"text-align: center">好这部分就算结束了,本来想连着jssdk一起的但是那样就显得太长了,但是那部分代码已经完成了,所以大家可以自行看看代码。
github地址奉上:https://github.com/xiadd/shorthand 欢迎star
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇:nodejs微信开发之自动回复的实现