// 云函數(shù)入口文件
const cloud = require('wx-server-sdk')
const requestpromise = require('request-promise');
cloud.init()
async function getAccessToken(wxContext,add) {
const options = {
method: 'GET',
url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='+wxContext.APPID + '&secret=小程序appsecret',
};
let db = cloud.database({})
const result = await requestpromise(options);
let resultJson = JSON.parse(result)
if (resultJson.access_token) {
let data = {
accessToken: resultJson.access_token,
expiresIn: resultJson.expires_in,
createTime: Date.now(),
appID:wxContext.APPID,
}
// expires_in
if (add) {
await db.collection('accessToken').add({
// data 字段表示需新增的 JSON 數(shù)據(jù)
data: data,
success: function (res) {
// res 是一個對象吏颖,其中有 _id 字段標(biāo)記剛創(chuàng)建的記錄的 id
console.log(res)
}
})
} else {
await db.collection('accessToken').where({
appID:wxContext.APPID
}).update({
data:data
})
}
return {
code:'0',
message:'獲取access_token成功',
result:resultJson,
}
} else {
return {
code:'-1',
message:'獲取access_token失敗'
}
}
}
// 云函數(shù)入口函數(shù)
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext()
//先從云函數(shù)數(shù)據(jù)庫中獲取accessToken
let db = cloud.database({})
const result = await db.collection('accessToken').where({
appID:wxContext.APPID
}).get()
if ( typeof result.data == 'object' && result.data.length) {
let info = result.data[0]
let {
accessToken,
expiresIn,
createTime
} = info
let timestamp = Date.now()
if (timestamp - createTime < expiresIn*1000) {
return {
code:'0',
message:'獲取access_token成功',
access_token:accessToken,
}
} else {
//超時重新獲取
let result = await getAccessToken(wxContext,false)
if (0 == result.code) {
return {
code:'0',
message:'獲取access_token成功',
access_token:result.result.access_token,
}
} else {
return {
code:'-1',
message:'獲取access_token失敗'
}
}
}
} else {
let result = await getAccessToken(wxContext,true)
if (0 == result.code) {
return {
code:'0',
message:'獲取access_token成功',
access_token:result.result.access_token,
}
} else {
return {
code:'-1',
message:'獲取access_token失敗'
}
}
}
}
微信云函數(shù)獲取access_token
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔚叨,“玉大人,你說我怎么就攤上這事扬蕊∥惨郑” “怎么了榜苫?”我有些...
- 文/不壞的土叔 我叫張陵抗悍,是天一觀的道長赏壹。 經(jīng)常有香客問我卡儒,道長,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任袜蚕,我火速辦了婚禮雄可,結(jié)果婚禮上数苫,老公的妹妹穿的比我還像新娘。我一直安慰自己虐急,他們只是感情好箱残,可當(dāng)我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著止吁,像睡著了一般被辑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上敬惦,一...
- 正文 年R本政府宣布迈勋,位于F島的核電站,受9級特大地震影響醋粟,放射性物質(zhì)發(fā)生泄漏靡菇。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一昔穴、第九天 我趴在偏房一處隱蔽的房頂上張望镰官。 院中可真熱鬧,春花似錦吗货、人聲如沸泳唠。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽笨腥。三九已至,卻和暖如春勇垛,著一層夾襖步出監(jiān)牢的瞬間脖母,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 微信小程序云開發(fā)個人博客項目實戰(zhàn)目錄一舆绎、準(zhǔn)備工作及引入 Vant Weapp 小程序 UI 組件庫二、專題的增刪改...
- 由于微信小程序不支持微信公眾號獲取access_token的域名配置们颜,無法在小程序端通過wx.request()的...
- 關(guān)于 access_token access_token 是公眾號的全局唯一接口調(diào)用憑據(jù)吕朵,公眾號調(diào)用各接口時都需使...
- 一直都想搞一下微信公眾號網(wǎng)頁開發(fā),公司忙沒有時間自己也沒開發(fā)過所以也沒有頭緒,前兩天通過自己的摸索以及自行查找的資...
- zabbix調(diào)用微信發(fā)短信可能用到的一些變量,獲取方式如下: 1.corpID(公司ID) 在我的企業(yè)--企業(yè)信息...