koa-easywechat_一个基于koa2的微信开发中间件

更新日期: 2018-11-10阅读量: 2130标签: koa

koa-easywechat

koa-easywechat是一个基于koa2的微信公众号开发中间件

由于使用的是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")
});

上面这段代码用于回复一段文字 。

WeChat(config , replyHandler):

  • appID【String】 : 第三方用户唯一凭证
  • appsecret【String】: 第三方用户唯一凭证密钥
  • token【String】: 令牌用于验证,用于验证请求是否来自微信服务器
  • isSafeModel【Boolean】: 消息加解密方式,值为true时,使用安全模式,值为false时,使用明文模式,当不配置的时候,默认值为false
  • encodingAESKey【string】:消息加解密密钥,当config.isSafeModel=true时,必须配置encodingAESKey


replyHandler:是一个async函数,用于开发者自己实现自动回复业务逻辑

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对象上挂载了两个对象wechatmessage

1、message 对象封装了微信发来的【普通消息】和【事件推送消息】,若要查看message对象的详细信息,请点击 这里message对象 
2、this.reply 对象是将要回复的内容,这个对象的属性要严格按照要求书写,具体规则在这里回复对象 
3、wechat 对象是这个中间件中最核心的,实现了大部分的功能


现在已经实现的接口有:

wechat.getAccessToken

​ 功能:获取accessToken。因为调用accessToken的接口每天的调用频率是有上限的,不能频繁调用,所以这里实现了accessToken的自管理,开发者不必关心accessToken是否过期,过期之后会自动去微信服务器请求并更新最新的accessToken。

var wechat=ctx.wechat;
var token=await ctx.getAccessToken();


wechat.getjsApiTicket()

​ 功能:获取jsapi_ticketj,sapi_ticket是公众号用于调用微信JS接口的临时票据。jsapi_ticket与token类似,在微信网页开发中需要用到,也需要全局缓存。

var wechat=ctx.wechat;
var jsApiTicket=await ctx.getJsApiTicket();


wechat.uploadTemporaryMaterial(type,filePath)

功能:上传临时素材

参数

属性类型说明
typeString支持的值有image, voice, video, thumb
filePathString多媒体文件的路径

返回值(json)

属性说明
type媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb,主要用于视频与音乐格式的缩略图)
media_id媒体文件上传后,获取标识
created_at媒体文件上传时间戳
var wechat=ctx.wechat;
var media=await ctx.uploadTemporaryMaterial("image","文件的路径");


wechat.createMenu(menuObj)

功能:创建自定义菜单

参数:

属性类型说明
menuObjObject菜单对象,格式要符合规定的格式
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);


wechat.getMenu()

功能:获取json格式的自定义菜单

var wechat=ctx.wechat;
var menu=await wechat.getMenu();


wechat.deleteMenu()

功能:删除自定义菜单

var wechat=ctx.wechat;
var menu=await wechat.deleteMenu();


阅读原文


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: https://www.fly63.com/article/detial/1317

从零实现TypeScript版Koa

这篇文章会讲些什么?如何从零开始完成一个涵盖Koa核心功能的Node.js类库,从代码层面解释Koa一些代码写法的原因:如中间件为什么必须调用next函数、ctx是怎么来的和一个请求是什么关系

node.js中 koa 框架的基本使用方法

安装 koa、简单使用、级联中间件的概念、获取get请求参数、获取post表单数据和文件上传、路由中间件 koa-router

koajs--基于node.js的下一代web开发框架

Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。

了解Koa和创建路由实例

koa 是由 Express 原班人马打造的,一个基于 Node.js 平台的 Web 开发框架,Express 是基于 ES5 的语法,随着新版 Node.js 开始支持 ES6 ,该团队重新编写诞生了 koa 1.0

读 koa2 源码后的一些思考与实践

Nodejs官方api支持的都是callback形式的异步编程模型。问题:callback嵌套问题,koa2 是由 Express原班人马打造的,是现在比较流行的基于Node.js平台的web开发框架,Koa 把 Express 中内置的 router、view 等功能都移除了

koa2中间件_深入理解 Koa2 中间件机制

我们知道,Koa 中间件是以级联代码(Cascading) 的方式来执行的。类似于回形针的方式,今天这篇文章就来分析 Koa 的中间件是如何实现级联执行的。在 koa 中,要应用一个中间件,我们使用 app.use()

基于Koa(nodejs框架)对json文件进行增删改查

想使用nodejs(koa)搭建一个完整的前后端,完成数据的增删改查,又不想使用数据库,那使用json文件吧。本文介绍了基于koa的json文件的增、删、改、查。

Koa日志中间件封装开发详解

对于一个服务器应用来说,日志的记录是必不可少的,我们需要使用其记录项目程序每天都做了什么,什么时候发生过错误,发生过什么错误等等,便于日后回顾、实时掌握服务器的运行状态,还原问题场景

Koa中间件

Koa 应用程序是一个包含一组中间件函数的对象,它是按照类似堆栈的方式组织和执行的。当一个中间件调用 next() 则该函数暂停并将控制传递给定义的下一个中间件。当在下游没有更多的中间件执行后,堆栈将展开并且每个中间件恢复执行其上游行为

KOA2框架原理解析和实现

koa是一个基于node实现的一个新的web框架,它是由express框架的原班人马打造的。它的特点是优雅、简洁、表达力强、自由度高。它更express相比,它是一个更轻量的node框架

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!