美文网首页
微信公众号+egg+sunny配置后端接口开发流程

微信公众号+egg+sunny配置后端接口开发流程

作者: 前端蜗牛老师 | 来源:发表于2019-12-31 16:30 被阅读0次

    本教程是微信公众号添加后端配置 消息模版,和通过co-wechat-api调用公众号接口的开发阶段的配置。
    1,需要下载内网穿透工具ngrok https://www.ngrok.cc/

    image.png
    下载安装教程可以参考 简书另一篇文章利用Sunny-Ngrok实现内网穿透 安装 image.png

    此时已经完成一大半

    2,然后配置公众号的测试号
    https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

    image.png image.png image.png

    3,然后配置公众号的服务器配置


    image.png

    成功之后


    image.png

    4,写代码测试


    image.png

    在middleware文件目录下新建一个wechat.js文件
    代码,这一步是根据网上一位同学的代码,具体链接找不到了,不好意思

    // app/middleware/wechat.js
    const wechat = require('co-wechat')
    
    module.exports = (options, app) => {
      return wechat(options).middleware(async(message, ctx) => {
        // TODO
        const { MsgType, Content } = message
        if (MsgType === 'text') {
          let reply
          switch (Content) {
            case '12345':
              reply = '上山打老虎'
              break
            case 'kiki':
              reply = '是我媳妇'
              break
            default:
              const msgs = [
                '我媳妇老漂亮了',
                '我媳妇会做饭',
                '我媳妇会煎药',
                '我媳妇吃的可多了',
                '我媳妇可能睡了',
                '我媳妇叫kiki',
                '我媳妇会打太极拳',
                '我媳妇总掉头发',
                '我媳妇可爱哭了',
                '我媳妇有点二'
              ]
              const rand = Math.floor(Math.random() * msgs.length)
              reply = msgs[rand]
          }
          return reply
        }
        return '欢迎光临'
      })
    }
    

    然后在路由里面配置路由

    // 微信
      app.get('/wechat', wechat)
      app.post('/wechat', wechat)
    

    配置号之后,重启服务
    刚才的测试账号,或者直接进入你自己的公众号,输入消息


    image.png

    输入12345
    就可以出来上山大老虎了
    第一个是我接的第三方图灵机器人

    这一步完成了

    然后配置,接口调用微信开放接口获取用户信息
    首先配置路由

    app.get('/weChatOAuth', app.controller.weChatOAuth.getOAuth)
      app.get('/getFollowers', app.controller.weChatOAuth.getFollowers)
      app.get('/getInfo', app.controller.weChatOAuth.getInfo)
    

    在controller 新建一个weChatOAuth.js文件

    'use strict'
    const Controller = require('egg').Controller
    const WechatAPI = require('co-wechat-api')
    
    const weChatOAuth = {
      appId: '你自己的',
      secret: '你自己的',
      token: 'webrabbit'
    }
    const tokenCache = {
      access_token: '',
      updateTime: Date.now(),
      expires_in: 7200
    }
    const api = new WechatAPI(
      weChatOAuth.appId,
      weChatOAuth.secret,
    )
    class weChatOAuthController extends Controller {
      async getOAuth() {
        const { ctx } = this
        const param = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${weChatOAuth.appId}&secret=${weChatOAuth.secret}`
        const res = await ctx.curl(param, {
          dataType: 'json'
        })
        Object.assign(tokenCache, res.data, {
          updateTime: Date.now()
        })
        ctx.body = res.data
      }
      async getFollowers() {
        const { ctx } = this
        const url = `https://api.weixin.qq.com/cgi-bin/user/get?access_token=${tokenCache.access_token}`
        const res = await ctx.curl(url, {
          dataType: 'json'
        })
        ctx.session.openid = await res.data.data.openid[0]
        ctx.body = res.data
      }
      async getInfo() {
        const { ctx } = this
        const res = await api.getUser({ openid: ctx.session.openid, lang: 'en' })
        console.log(await api.getTags())
        // res = await api.batchGetUsers(res.data.openid, 'zh_CN')
        ctx.body = res
      }
    }
    
    module.exports = weChatOAuthController
    
    

    前两个接口是传统公众平台上的api
    后面的getInfo 是用的co-wechat-api 插件掉的,更方便了
    别忘了

    npm install --save co-wechat-api
    

    然后调用接口就会获取信息


    image.png

    当getInfo这样写时

    async getInfo() {
        const { ctx } = this
        let res = await api.getFollowers() // 获取测试号的关注者的信息,刚才配置测试号,扫码关注的人
        res = await api.batchGetUsers(res.data.openid, 'zh_CN')
        ctx.body = res
      }
    
    image.png

    现在就 完成了,后端调用开放平台公众号接口的配置
    附上co-wechat-api文档地址 http://doxmate.cool/node-webot/co-wechat-api/api.html#api_api_user

    如果对阁下有帮助,请点赞,关注,也不排除小小的大赏谢谢😂😂😂

    简书地址https://www.jianshu.com/p/5290c47dacf9

    相关文章

      网友评论

          本文标题:微信公众号+egg+sunny配置后端接口开发流程

          本文链接:https://www.haomeiwen.com/subject/qkkfoctx.html