用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 查看内容

如何在微信小程序中获得公众号的access_token?

Rolan 2020-6-12 00:42

IP白名单阻碍了微信小程序云开发调用公众号API 微信小程序和公众号有很好的互补性,经常被开发者结合使用。舍得叔叔在开发微信小程序(微信租赁店)的时候遇到一个问题:在小程序里面调用公众号的API(关联服务号: ...

IP白名单阻碍了微信小程序云开发调用公众号API

微信小程序和公众号有很好的互补性,经常被开发者结合使用。舍得叔叔在开发微信小程序(微信租赁店)的时候遇到一个问题:在小程序里面调用公众号的API(关联服务号:舍得叔叔和小伙伴们爱摄影)。但是,公众号API在被调用的时候,需要先获取access_token,比如获取素材列表API:https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=ACCESS_TOKEN

获取access_token本身不难,但是公众号后台管理平台缺必须要提前填写IP白名单,也就是说,只有固定IP并出现在白名单中,才能向微信服务器请求获取access_token。注意,在小程序中云开发中,云函数可以直接获取小程序的access_token,而不需要固定IP地址,云函数目前也不能进行固定IP地址的配置。对于像舍得叔叔这样的开发者,一直采用微信小程序云开发,而没有架设自己的服务器,这是一个难题!

为获取公众号access_token而自建服务器,这对serverless信仰的舍得叔叔而言简直是侮辱!自建服务器用于获取access_token可能成为性能的瓶颈和运维的瓶颈,前面采用serverless的好处一夜之间荡然无存!

采用腾讯SCF(Serverless Cloud Function)实现access_token云函数

舍得叔叔采用腾讯SCF(Serverless Cloud Function)技术,开发了一个简单的access_token云函数,这个云函数运行在腾讯SCF环境下,配置了外网访问固定IP地址,不需要任何服务器,就实现了固定IP地址对微信服务器发起access_token请求!

有同样需求的开发者,可以在小程序云函数中直接调用舍得叔叔写的云函数,调用地址和格式:https://service-5yy1o1wv-1257613110.sh.apigw.tencentcs.com/release/getAccessToken?appid=wx25d1740123456789&secret=46c4e876bb5ab67d85f6500123456789

IP地址是:123.206.197.238,这个地址可以配置到公众号的IP白名单中。

调用的示例代码如下:

  1. request = require('request')
  2. let res = await (new Promise((resolve, reject) => {
  3. try {
  4. request({
  5. url: 'https://service-5yy1o1wv-1257613110.sh.apigw.tencentcs.com/release/getAccessToken?appid=' + appId + '&secret=' + appSecret,
  6. method: "GET",
  7. json: true,
  8. },
  9. function (err, resp, body) {
  10. if (err) {
  11. return reject(err)
  12. }
  13. return resolve(body)
  14. })
  15. } catch (e) {
  16. return reject(err)
  17. }
  18. }))
  19. return {
  20. msg: "SUCCESS",
  21. access_token: res.access_token
  22. }

如何开发腾讯云SCF,实现获取access_token云函数的详细步骤和相关代码,舍得叔叔将在如何在微信小程序中获得公众号的access_token?(二)中详细阐述。

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏
原作者: 舍得叔叔 来自: 简书