CodingYang

vuePress-theme-reco Rackar    2018 - 2024
CodingYang CodingYang

Choose mode

  • dark
  • auto
  • light
首页
类别
  • 技术
  • 个人
  • 思考
  • 儿童
标签
时间线
联系
  • 关于
  • RSS订阅 (opens new window)
  • GitHub (opens new window)
  • 简书 (opens new window)
  • CSDN (opens new window)
  • WeChat (opens new window)
GitHub (opens new window)
author-avatar

Rackar

67

文章

44

标签

首页
类别
  • 技术
  • 个人
  • 思考
  • 儿童
标签
时间线
联系
  • 关于
  • RSS订阅 (opens new window)
  • GitHub (opens new window)
  • 简书 (opens new window)
  • CSDN (opens new window)
  • WeChat (opens new window)
GitHub (opens new window)
  • 微信小程序云开发采坑

    • 直接使用 openid
      • 授权后解密 openid
        • 云函数调试
          • 小程序转发

          微信小程序云开发采坑

          vuePress-theme-reco Rackar    2018 - 2024

          微信小程序云开发采坑


          Rackar 2020-02-04 小程序

          微信的开发文档到底有多差,这次可是亲身体验过了。没有一个 demo 简直让人崩溃。

          # 直接使用 openid

          云数据库有两种访问方式:

          小程序前端(也就是页面)直接操作,以及云函数(云端 node)。所以在文档中经常看到两种写法,一般来说前端的写法会有回调方法。

          在小程序端写入数据的数据会自动添加"_openid"字段,用于记录时哪个用户进行的操作导致修改数据库。

          云函数不会自动添加。但是云函数中可以用 let { OPENID, APPID } = cloud.getWXContext() 来直接获取当前用户的 openid。

          不管是哪种方式,这样写就都不用进行微信用户的授权和密钥的换取,节省了一些费劲的工作。

          # 授权后解密 openid

          不过想要获得昵称、头像、性别、城市等信息的话,还是需要使用一个 button 去获取授权获取一下。

          这个 button 在 uniapp 中写成这样:

          <button open-type="getUserInfo" @getuserinfo='onGotUserInfo'>登录授权</button>

          在微信小程序原生中写作这样:

          <button open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="onGotUserInfo">获取用户信息</button>

          这里可以获取回来明文信息,但是没有 openid。获取的方法在这里,里面还包括解密示例代码,真是难得:

          https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#method-cloud

          # 云函数调试

          高级日志的写法:

          const log = cloud.logger()
          	log.info({
          	    name: 'myDebugLog',
          	    event:event,
          		context:context,
          		openid:OPENID,
                  msg:'这破log'
          })
          
          1
          2
          3
          4
          5
          6
          7
          8

          # 小程序转发

          如果要在某一个页面开启小程序默认转发,必须定义onShareAppMessage。如:

          onShareAppMessage(res) {
              if (res.from === "button") {
                // 来自页面内分享按钮
                console.log(res.target);
              }
          
              return {
                title: "转发标题",
                path: "/pages/index/index"
              };
            },
          
          1
          2
          3
          4
          5
          6
          7
          8
          9
          10
          11

          或者使用自定义按钮<button open-type="share">分享</button>

          参与编辑此文章 (opens new window)
          更新于: 3/22/2020, 6:47:33 PM