微信公众号HTTP调用云开发笔记

这是我参与更文挑战的第4天,活动详情查看: 更文挑战

写在前面

这近使用腾讯云cloudbase开发了微信公众号H5应用;使用它主要看重了它的一站式后台管理,只要做一个简单的配置就能有一个TCB后台运营管理服务,但是随时开发的深入,觉得他的后台配置比较繁琐,现在改用express重新搭建了一个管理后台;这样会导致云服务器数据操作的逻辑需要重新写,后面在微信公众号的文档上发现发现云开发资源也支持 HTTP API;

使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通。

按照他的文档;先获取access_token,然后再通过 databaseCollectionGet 就可以访问云数据库了

获取 access_token

auth.getAccessToken
获取小程序全局唯一后台接口调用凭据(access_token)。调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存。

为了 access_token 的安全性,后端 API 不能直接在小程序内通过 wx.request 调用,即 api.weixin.qq.com 不能被配置为服务器域名。开发者应在后端服务器使用getAccessToken获取 access_token,并调用相关 API;

请求地址
GET api.weixin.qq.com/cgi-bin/tok…

async init () {
    await this.getAccessToken()
  }
  async getAccessToken () {
    let res = await fetch({
      url: 'https://api.weixin.qq.com/cgi-bin/token',
      params: {
        grant_type: 'client_credential',
        appid: this.appid,
        secret: this.secret,
      }
    })
    this.access_token = res.access_token
    console.log(res)
  }
复制代码

报错

{“errmsg”:”This ip is no longer use. Please change your DNS server or server hosts list. Announcement url:developers.weixin.qq.com/community/d…

微信后台配置IP访问白名单:access_token 白名单

image.png

加上就能获取到了

获取数据库内容

第二步就是通过 databaseCollectionGet 查询数据库内容

databaseCollectionGet
请求地址
POST api.weixin.qq.com/tcb/databas…

// 获取集合信息
  async databaseCollectionGet() {
    let res = await fetch({
      url: 'https://api.weixin.qq.com/tcb/databasecollectionget',
      params: {
        access_token: this.access_token
      },
      data: {
        env: this.env
      },
      method: 'post'
    })
    console.log(res)
    return res
  }
复制代码

出了错了!!!! 48001

一直出现一个48001的错误;
image.png

检查后台配置,暂时没有发现问题;
查看了云开发后台数据库配置,暂时也没有问题;

image.png

image.png

发现暂时通过微信公众号调用云开发人不多,又是通过自建服HTTP API方式调用的人又更少,出了问题社区找不到太多的线索;个人觉得开发社区生态还是挺重要的,突然想到这近比较火的HarmonyOS,有很多人不大看好鸿蒙,很大一部分觉得生态上没法跟android相比;但我还是挺希望华为的HarmonyOS能发展壮大,希望有更多手机厂家,开发者加入进去,一起改下历史哈哈

结论 和 解决办法

云开发 HTTP API 文档
HTTP API 提供了小程序外访问云开发资源的能力,使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通。

经过跟技术人员沟通,这里面云开发指是微信小程序的,在已有的微信小程序云开发上,HTTP API也是能访问的;但是只有公众号没有小程序访问就不行了,这里比较纳闷为什么没有打通,对应的开发的资源是一样的呀;

后面找到了 cloudbase 云开发的 nodejs 版本;这里面做了很多封装,accesstoken 相关的逻辑,SDK都已经封装好了,这样调用起来就方便太多了;
地址:
docs.cloudbase.net/api-referen…

教训:多看官方文档和官方技术人员保持一个良好的沟通是一个非常好的习惯

这是今天日更的第4天,加油!

参考

developers.weixin.qq.com/miniprogram…

developers.weixin.qq.com/doc/offiacc…

docs.cloudbase.net/api-referen…
zhuanlan.zhihu.com/p/83222407

docs.cloudbase.net/api-referen…

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享