github地址
现在已经实现的功能有 1、微信的接入 2、accessToken自管理 3、jsapi_ticket的自管理 4、被动回复功能(回复文本,图片,语音,视频,音乐,图文消息) 5、临时素材上传 2018-5-9 新增功能 1、自定义菜单的生成、查询、删除 2018-5-10 新增功能 1、微信消息加密和解密 功能暂时有点少,以后每天实现一个接口,欢迎各位大佬的pull request,向你们学习
你把appID和appsecret也提交了
@im-here 没事儿 那个是测试用的
@jaxQin 我是渣渣 也在学习阶段
挺好的加油😊
From Noder
koa-easywechat是一个微信公众号开发中间件. 由于使用的是koa2,异步开发使用async/await的写法,所以请保证你的node版本>=7.6
koa-easywechat是一个微信公众号开发中间件.
由于使用的是koa2,异步开发使用async/await的写法,所以请保证你的node版本>=7.6
$ npm install koa-easywechat -S
注意:koa-easywechat中间件要写在最前面,也就是要第一个use,因为我在ctx上挂载了一个wechat对象,这个对象实现了大部分的微信接口,这样才能保证开发者在自己的写路由里,获取到ctx.wechat进行自己的业务开发
var Koa=require("koa"); var WeChat=require("koa-easywechat"); var app=new Koa(); app.use(WeChat({ appID:"", appsecret:"", token:"", isSafeModel:false, encodingAESKey:"" },async function (next){ this.reply={ type:"text", content:"回复一段文字吧" } } })); app.listen(3000,()=>{ console.log("server is running") });
上面这段代码用于回复一段文字
async replyHandler(next){ var message=this.message; var wechat=this.wechat; this.reply={ type:"text", content:"回复一段文字吧" } }
如果没有回复的业务逻辑,可以调用next()将控制权交给之后的中间件处理
async replyHandler(next){ await next(); }
在这个函数里,this就是koa框架中的上下文(ctx)的引用,我在ctx对象上挂载了两个对象wechat和message
功能:获取accessToken。因为调用accessToken的接口每天的调用频率是有上限的,不能频繁调用,所以这里实现了accessToken的自管理,开发者不必关心accessToken是否过期,过期之后会自动去微信服务器请求并更新最新的accessToken。
var wechat=ctx.wechat; var token=await ctx.getAccessToken();
功能:获取jsapi_ticketj,sapi_ticket是公众号用于调用微信JS接口的临时票据。jsapi_ticket与token类似,在微信网页开发中需要用到,也需要全局缓存。
var wechat=ctx.wechat; var jsApiTicket=await ctx.getJsApiTicket();
功能:上传临时素材
参数
返回值(json)
var wechat=ctx.wechat; var media=await ctx.uploadTemporaryMaterial("image","文件的路径");
功能:创建自定义菜单
参数:
var menu = { button: [ { type: "click", name: "今日歌曲", key: "V1001_TODAY_MUSIC" }, { name: "菜单", sub_button: [ { type: "view", name: "搜索", url: "http://www.soso.com/" }, { type: "click", name: "赞一下我们", key: "V1001_GOOD" }] }] }; var wechat=ctx.wechat; await wechat.createMenu(menu);
功能:获取json格式的自定义菜单
var wechat=ctx.wechat; var menu=await wechat.getMenu();
功能:删除自定义菜单
var wechat=ctx.wechat; var menu=await wechat.deleteMenu();
先到这里。。。。。。
未来还会实现更多的功能
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
现在已经实现的功能有 1、微信的接入 2、accessToken自管理 3、jsapi_ticket的自管理 4、被动回复功能(回复文本,图片,语音,视频,音乐,图文消息) 5、临时素材上传 2018-5-9 新增功能 1、自定义菜单的生成、查询、删除 2018-5-10 新增功能 1、微信消息加密和解密 功能暂时有点少,以后每天实现一个接口,欢迎各位大佬的pull request,向你们学习
你把appID和appsecret也提交了
@im-here 没事儿 那个是测试用的
@jaxQin 我是渣渣 也在学习阶段
挺好的加油😊
From Noder
koa-easywechat
安装
API
快速开始
注意:koa-easywechat中间件要写在最前面,也就是要第一个use,因为我在ctx上挂载了一个wechat对象,这个对象实现了大部分的微信接口,这样才能保证开发者在自己的写路由里,获取到ctx.wechat进行自己的业务开发
上面这段代码用于回复一段文字
WeChat(config , replyHandler);
config【Object】
replyHandler:是一个async函数,用于开发者自己实现自动回复业务逻辑
如果没有回复的业务逻辑,可以调用next()将控制权交给之后的中间件处理
在这个函数里,this就是koa框架中的上下文(ctx)的引用,我在ctx对象上挂载了两个对象wechat和message
1、message 对象封装了微信发来的【普通消息】和【事件推送消息】,若要查看message对象的详细信息,请点击 这里message对象
2、this.reply 对象是将要回复的内容,这个对象的属性要严格按照要求书写,具体规则在这里回复对象
3、wechat 对象是这个中间件中最核心的,实现了大部分的功能
现在已经实现的接口有:
wechat.getAccessToken
功能:获取accessToken。因为调用accessToken的接口每天的调用频率是有上限的,不能频繁调用,所以这里实现了accessToken的自管理,开发者不必关心accessToken是否过期,过期之后会自动去微信服务器请求并更新最新的accessToken。
wechat.getJsApiTicket()
功能:获取jsapi_ticketj,sapi_ticket是公众号用于调用微信JS接口的临时票据。jsapi_ticket与token类似,在微信网页开发中需要用到,也需要全局缓存。
wechat.uploadTemporaryMaterial(type,filePath)
功能:上传临时素材
参数
返回值(json)
wechat.createMenu(menuObj)
功能:创建自定义菜单
参数:
wechat.getMenu()
功能:获取json格式的自定义菜单
wechat.deleteMenu()
功能:删除自定义菜单
先到这里。。。。。。
未来还会实现更多的功能