欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

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

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

在堆龍德慶等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站制作 網(wǎng)站設(shè)計(jì)制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,堆龍德慶網(wǎng)站建設(shè)費(fèi)用合理。

獲取access_token

因?yàn)檎{(diào)用所有公眾號(hào)的接口都需要用到access_token,所以必須先將access_token緩存起來,方便以后使用,access_token的有效時(shí)間為2小時(shí),所以需要定時(shí)更新,下面是代碼實(shí)現(xiàn)。

有一點(diǎn)需要注意,本文會(huì)提到兩個(gè)access_token,還有一個(gè)是oauth時(shí)會(huì)用到,所以大家不要搞混了。

access_token的獲取

access_token的獲取相對來說很簡單了,就是請求一個(gè)鏈接附加參數(shù)得到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);
   }
  });
 })
};

請求的三個(gè)參數(shù)也比較簡潔:


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

access_token的保存

保存有很多種方法,放在緩存里等,我這邊是存放在一個(gè)文件里,因?yàn)閮H僅是一個(gè)示例,定時(shí)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就能做到定時(shí)更新了,注意,如果不是測試好獲取token的次數(shù)是有限制的,不過一般沒什么問題,測試最好還是在測試號(hào)上進(jìn)行。

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

自定義菜單

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

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

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

//token,因?yàn)閠oken是存在文件里的所以這里進(jìn)行文件讀取得到token
const token = fs.readFileSync('./token').toString();

//常用type為view和click,分別為點(diǎn)擊事件和鏈接
var menus = {
 "button": [
  {
   "name": "測試菜單",
   "sub_button": [
    {
     "type": "view",
     "name": "授權(quán)登錄",
     "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;

這樣在服務(wù)器啟動(dòng)的時(shí)候調(diào)用這個(gè)模塊就可以創(chuàng)建一個(gè)簡單的自定義菜單了:

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

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

當(dāng)前名稱:node中如何獲取access_token+自定義菜單
URL地址:http://www.chinadenli.net/article12/ishjdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)外貿(mào)建站響應(yīng)式網(wǎng)站定制開發(fā)全網(wǎng)營銷推廣靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司