All Projects → tencentyun → Wafer2 Node Sdk

tencentyun / Wafer2 Node Sdk

Licence: other
Wafer2 SDK for Node.js

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Wafer2 Node Sdk

Gulp Wxapp Boilerplate
小程序 Gulp 开发脚手架
Stars: ✭ 145 (-46.3%)
Mutual labels:  tencent, weapp
tencent-cam-role
Easily provision Tencent CAM roles using Serverless Components
Stars: ✭ 19 (-92.96%)
Mutual labels:  tencent
weapp.request
为微信小程序提供的网络请求组件,是 wx.request 的扩展,基于 Promise API,添加缓存控制
Stars: ✭ 29 (-89.26%)
Mutual labels:  weapp
weapp-lolgame
微信小程序,微信小应用-英雄联盟(LOL)战绩查询
Stars: ✭ 64 (-76.3%)
Mutual labels:  weapp
wxapp-computed
在微信小程序中使计算值(computed)
Stars: ✭ 20 (-92.59%)
Mutual labels:  weapp
knockdown
答题小程序 - 自定义题库
Stars: ✭ 151 (-44.07%)
Mutual labels:  weapp
cordova-plugin-tencent-liteav
A cordova plugin for video playing with Tencent's LiteAV SDK. Support RTMP/HLS/FLV/MP4.
Stars: ✭ 24 (-91.11%)
Mutual labels:  tencent
Eweapp
eweapp:ECShop非官方版微信小程序商城
Stars: ✭ 257 (-4.81%)
Mutual labels:  weapp
qqmessageoutput
安卓QQ聊天记录导出
Stars: ✭ 100 (-62.96%)
Mutual labels:  tencent
serverless-tencent-scf
Add support for Tencent Cloud's serverless infrastructure to the Serverless Framework via this plugin
Stars: ✭ 53 (-80.37%)
Mutual labels:  tencent
cmq-go
Tencent CMQ Golang SDK
Stars: ✭ 20 (-92.59%)
Mutual labels:  tencent
wenaox
🐬 A light weight and good performance micro channel small program state management library
Stars: ✭ 33 (-87.78%)
Mutual labels:  weapp
xdk-cli
微信小程序cli脚手架,目前提供的功能有:快速创建启动模版功能【页面 / 组件】, 自动发布体验版功能,设置版本号/版本描述功能,自定义指令功能
Stars: ✭ 43 (-84.07%)
Mutual labels:  weapp
xing-weapp-editor
开箱即用的微信小程序图文编辑组件
Stars: ✭ 101 (-62.59%)
Mutual labels:  weapp
wxapp-api-interceptors
微信小程序api拦截器
Stars: ✭ 99 (-63.33%)
Mutual labels:  weapp
Taro-v2ex-weapp
awesome v2ex weapp 😎 目前支持微信小程序、支付宝小程序、h5
Stars: ✭ 25 (-90.74%)
Mutual labels:  weapp
wxbizdatacrypt
微信小程序加密数据解密算法Go版
Stars: ✭ 132 (-51.11%)
Mutual labels:  weapp
TUICalling
腾讯云TRTC针对直播、语聊、视频通话等推出的低代码解决方案~
Stars: ✭ 28 (-89.63%)
Mutual labels:  tencent
Ironinfoweapp
铜陵回归物资有限公司支持, 钢材信息小程序(基于uni-app), 后台账密: tour, tour520
Stars: ✭ 257 (-4.81%)
Mutual labels:  weapp
awesome-min
🎉 A curated list of awesome things related to Min
Stars: ✭ 27 (-90%)
Mutual labels:  weapp

Wafer 服务端 SDK - Node.js

介绍

Wafer 服务端 SDK 是腾讯云为微信小程序开发者提供的快速开发库,SDK 封装了以下功能供小程序开发者快速调用:

  • 用户登录与验证
  • 信道服务
  • 图片上传
  • 数据库
  • 客服消息

开发者只需要根据文档对 SDK 进行初始化配置,就可以获得以上能力。你还可以直接到腾讯云小程序控制台购买小程序解决方案,可以得到运行本示例所需的资源和服务,其中包括已部署好的相关程序、示例代码及自动下发的 SDK 配置文件 /etc/qcloud/sdk.config

安装

npm install wafer-node-sdk --save

配置

const configs = {
  appId: 'wx00dd00dd00dd00dd',
  appSecret: 'abcdefghijkl',
  useQcloudLogin: false,
  cos: {
    region: 'cn-south',
    fileBucket: 'test',
    uploadFolder: ''
  },
  serverHost: '1234567.qcloud.la',
  tunnelServerUrl: '1234567.ws.qcloud.la',
  tunnelSignatureKey: 'abcdefghijkl',
  qcloudAppId: '121000000',
  qcloudSecretId: 'ABCDEFG',
  qcloudSecretKey: 'abcdefghijkl',
  wxMessageToken: 'abcdefghijkl'
}
const qcloud = require('qcloud-weapp-server-sdk')(configs)

具体配置项说明请查看:API 文档

API 文档

具体查看 API 文档

基本功能

用户登录与验证

用户登录使用 authorization 接口:

const { auth: { authorization } } = qcloud

// express
module.exports = (req, res) => {
  authorization(req).then(result => {
    // result : {
    //   loginState: 0  // 1表示登录成功,0表示登录失败
    //   userinfo: { // 用户信息.. }
    // }
  })
}

用户登录态校验使用 validation 接口:

const { auth: { validation } } = qcloud

// express
module.exports = (req, res) => {
  validation(req).then(result => {
    // result : {
    //   loginState: 0  // 1表示登录成功,0表示登录失败
    //   userinfo: { // 用户信息.. }
    // }
  })
}

如果你使用 Koa 框架,则可以直接使用 SDK 导出的 koaAuthorizationkoaValidation 中间件,登录信息将会被写进 ctx.state.$wxInfo

const { auth: { authorizationMiddleware, validationMiddleware } } = qcloud

// 颁发登录态
router.get('/login', authorizationMiddleware, ctx => {
  console.log(ctx.state.$wxInfo)
  // {
  //   loginState: 0  // 1表示登录成功,0表示登录失败
  //   userinfo: { // 用户信息.. }
  // }
})

// 校验登录态
router.get('/user', validationMiddleware, ctx => {
  console.log(ctx.state.$wxInfo)
  // {
  //   loginState: 0  // 1表示登录成功,0表示登录失败
  //   userinfo: { // 用户信息.. }
  // }
})

信道服务

业务在一个路由上(如 /tunnel)提供信道服务,只需把该路由上的请求都交给 SDK 的信道服务处理即可。使用信道服务需要实现处理器,来获取处理信道的各种事件,具体可参考配套 Demo 中的 tunnel.js 的实现。

图片上传

SDK 提供直接上传图片至腾讯云对象储存(COS)的接口,只需要将请求传入接口,即可自动上传文件到 COS 中,并返回数据:

const { uploader } = qcloud

module.exports = async ctx => {
  await uploader(ctx.req).then(data => {
    console.log(data)
    // {
    //   imgUrl: 'http://test-121000000.cosgz.myqcloud.com/abcdef.jpg',
    //   size: 1024,
    //   mimeType: 'image/jpeg',
    //   name: 'abcdef.jpg'
    // }
  })
}

数据库

SDK 还暴露出了内部使用的 MySQL 连接,由于 SDK 内部使用 Knex.js 连接数据库,SDK 暴露的 MySQL 实例就是 Knex.js 连接实例,具体使用方法可以查看 Knex.js 文档

const { mysql } = qcloud

mysql('db_name').select('*').where({ id: 1 })
// => { id:1, name: 'leo', age: 20 }

客服消息

微信提供一个客服消息处理能力,你可以使用 SDK 提供的接口快速部署一个接受客服信息的 API:

const { message: { checkSignature } } = require('../qcloud')

/**
 * 响应 GET 请求(响应微信配置时的签名检查请求)
 */
router.get('/message', ctx => {
  const { signature, timestamp, nonce, echostr } = ctx.query
  if (checkSignature(signature, timestamp, nonce)) ctx.body = echostr
  else ctx.body = 'ERR_WHEN_CHECK_SIGNATURE'
})

// post 请求用来接收消息
router.post('/message', (ctx, next) {
    // 检查签名,确认是微信发出的请求
    const { signature, timestamp, nonce } = ctx.query
    if (!checkSignature(signature, timestamp, nonce)) ctx.body = 'ERR_WHEN_CHECK_SIGNATURE'

    /**
     * 解析微信发送过来的请求体
     * 可查看微信文档:https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/receive.html#接收消息和事件
     */
    const body = ctx.request.body

    ctx.body = 'success'
})

示例 Demo

腾讯云还提供了完整的示例代码,点击这里下载。

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].