用戶
 找回密碼
 立即注冊

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空間
收藏
原作者: 舍得叔叔 來自: 簡書
梦幻单人赚钱方法 11选5傻瓜打法 体彩内蒙古十一选五开奖结果 陕西11选五一定有 陕西十一选五五遗漏走势图 真钱捕鱼棋牌游戏平台 基金配资哪家好 河南河南11选5走势图 北京快乐8玩法 福彩黑龙江36选7走势图 黑龙江22选5开奖直播