91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node中如何獲取access_token+自定義菜單

發布時間:2021-05-22 11:17:26 來源:億速云 閱讀:227 作者:小新 欄目:web開發

這篇文章給大家分享的是有關node中如何獲取access_token+自定義菜單的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

獲取access_token

因為調用所有公眾號的接口都需要用到access_token,所以必須先將access_token緩存起來,方便以后使用,access_token的有效時間為2小時,所以需要定時更新,下面是代碼實現。

有一點需要注意,本文會提到兩個access_token,還有一個是oauth時會用到,所以大家不要搞混了。

access_token的獲取

access_token的獲取相對來說很簡單了,就是請求一個鏈接附加參數得到access_token,代碼如下:

const getAccessToken = function () {
 let queryParams = {
  'grant_type': 'client_credential',
  'appid': config.appId,
  'secret': config.appSecret
 };

 let wxGetAccessTokenBaseUrl = 'https://api.weixin.qq.com/cgi-bin/token?'+qs.stringify(queryParams);
 let options = {
  method: 'GET',
  url: wxGetAccessTokenBaseUrl
 };
 return new Promise((resolve, reject) => {
  request(options, function (err, res, body) {
   if (res) {
    resolve(JSON.parse(body));
   } else {
    reject(err);
   }
  });
 })
};

請求的三個參數也比較簡潔:


參數是否必須說明
grant_type獲取access_token填寫client_credential
appid第三方用戶唯一憑證
secret第三方用戶唯一憑證密鑰,即appsecret

access_token的保存

保存有很多種方法,放在緩存里等,我這邊是存放在一個文件里,因為僅僅是一個示例,定時7000s更新。

//保存與更新
const saveToken = function () {
 getAccessToken().then(res => {
  let token = res['access_token'];
  fs.writeFile('./token', token, function (err) {
   
  });
 })
};

const refreshToken = function () {
 saveToken();
 setInterval(function () {
  saveToken();
 }, 7000*1000);
};

這樣access_token就能做到定時更新了,注意,如果不是測試好獲取token的次數是有限制的,不過一般沒什么問題,測試最好還是在測試號上進行。

node中如何獲取access_token+自定義菜單

自定義菜單

獲取access_token后自定義菜單的實現就非常簡單了,這里僅僅簡單講一下請求,具體菜單內容請看微信的文檔。
http請求方式:POST(請使用https協議) https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

但是body要帶上菜單的內容,就是json數據,但是微信返回的數據是string類型,所以下面也要注意,可能在這邊會遇到問題。簡單代碼如下:

'use strict';
const fs = require('fs');
const request = require('request');

//token,因為token是存在文件里的所以這里進行文件讀取得到token
const token = fs.readFileSync('./token').toString();

//常用type為view和click,分別為點擊事件和鏈接
var menus = {
 "button": [
  {
   "name": "測試菜單",
   "sub_button": [
    {
     "type": "view",
     "name": "授權登錄",
     "url": "http://wuyrsp3tma.proxy.qqbrowser.cc/auth"
    }]
  }]
};

function createMenu() {
 let options = {
  url: 'https://api.weixin.qq.com/cgi-bin/menu/create?access_token=' + token,
  form: JSON.stringify(menus),
  headers: {
   'Content-Type': 'application/x-www-form-urlencoded'
  }
 };
 
 request.post(options, function (err, res, body) {
  if (err) {
   console.log(err)
  }else {
   console.log(body);
  }
 })
 
}

module.exports = createMenu;

這樣在服務器啟動的時候調用這個模塊就可以創建一個簡單的自定義菜單了:

node中如何獲取access_token+自定義菜單

感謝各位的閱讀!關于“node中如何獲取access_token+自定義菜單”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

嵩明县| 西林县| 额尔古纳市| 嫩江县| 宣化县| 湾仔区| 北海市| 莎车县| 锦屏县| 延边| 安泽县| 临汾市| 河津市| 宁南县| 东至县| 文昌市| 宜良县| 抚远县| 宁波市| 仁布县| 长治市| 正蓝旗| 新泰市| 磴口县| 伊宁县| 棋牌| 体育| 营口市| 宁晋县| 太谷县| 宁远县| 西平县| 贡觉县| 德州市| 巴青县| 琼中| 怀安县| 临夏县| 墨脱县| 民和| 镇江市|