zoukankan      html  css  js  c++  java
  • 微信小程序-koa-获取微信access-token

    const rp=require('request-promise')
    const APPID='xxxxxxxxx'
    const AppSecret='xxxxxxxxxxxxxx'
    const URL=`https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${APPID}&secret=${AppSecret}`
    const path=require('path')
    //输出绝对路径
    const fileName=path.resolve(__dirname,'./access_token.json')
    
    
    const fs=require('fs')
    
    const updateAccessToken=async ()=>{
      const resStr=await rp(URL)
      const res=JSON.parse(resStr)
      // 写文件
      if(res.access_token){
        fs.writeFileSync(fileName,JSON.stringify({
          access_token:res.access_token,
          createTime:new Date()
        }))
      }else{
        //如果失败 继续发送请求
        await updateAccessToken()
      }
    }
    
    //因为accessToken 每2小时更新一次  所以适当提前5分钟刷新
    setInterval(()=>{
      await updateAccessToken()
    },69000000)
    
    const getAccessToken=async()=>{
      //读取文件
      try{
        const readRes=fs.readFileSync(fileName,'utf8')
        const readObj=JSON.parse(readRes)
        const createTime=new Date(readObj.createTime).getTime()
        const nowTime=new Date().getTime()
        //如果更新的时候断线了 重新获取
        if((nowTime-createTime)/1000/60/60>=2){
          await updateAccessToken()
          await getAccessToken()
        }
        return readObj.access_token
      }catch(err){
        //刚启动的时候没有 所以读取失败  所以新更新
        await updateAccessToken()
        await getAccessToken()
      }
    
    }
    
    module.exports=getAccessToken
  • 相关阅读:
    「枫桥夜泊」一诗
    走遍亚洲 —— 泰国
    走遍亚洲 —— 泰国
    暴露年龄
    暴露年龄
    插入排序(insertion sort)
    开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
    OpenCV For iOS 1: 连接OpenCV 3.0
    插入排序
    [hadoop系列]Pig的安装和简单演示样例
  • 原文地址:https://www.cnblogs.com/lxz-blogs/p/12706698.html
Copyright © 2011-2022 走看看