const cloud = require(‘wx-server-sdk’)
const rp = require(‘request-promise’);
cloud.init()
async function getAccessToken(){
console.log(‘getAccessToken’)
const S_TO_MS = 1000; // 秒到毫秒的转换。
if (!global.access_token || !global.access_token.timestamp ||
!global.access_token.expires_in ||
global.access_token.timestamp + global.access_token.expires_in * S_TO_MS <= new Date() - 300) {
console.log(‘getAccessToken 缓存无效’)
//appid 和秘钥
const appid = ‘你的appid’, secret = ‘你的secret’
const AccessToken_options = {
method: ‘GET’,
url: ‘https://api.weixin.qq.com/cgi-bin/token’,
qs: {
appid,
secret,
grant_type: ‘client_credential’
},
json: true
};
//获取AccessToken
const resultValue = await rp(AccessToken_options);
const token = resultValue.access_token
global.access_token = {
access_token: token,
timestamp: new Date(),
expires_in: resultValue.expires_in
}
return resultValue.access_token
}else{
const access_token = global.access_token.access_token;
console.log('缓存缓存缓存', access_token)
return access_token
}
}
// 云函数入口函数
exports.main = async (event, context) => {
const token = await getAccessToken()
console.log(token)
return token
};
async function gettoken() {
const appid = '。。。', secret = '。。。。'
const AccessToken_options = {
method: 'GET',
url: 'https://api.weixin.qq.com/cgi-bin/token',
qs: {
appid,
secret,
grant_type: 'client_credential'
},
json: true
};
//获取AccessToken
const resultValue = await rp(AccessToken_options);
return resultValue
}
async function cacheToken(){
let t4 = process.uptime()
let token
let status = '-'
if (global.expires_in >= (t4 - 3)) {
status = '缓存'
token = global.atoken
} else {
status = '无缓存'
let atoken = await gettoken()
global.atoken = atoken
global.expires_in = process.uptime() + atoken.expires_in
token = global.atoken
}
return {
t4, status, token
}
}
云调用出来后就不用这么麻烦单独获取access_token了
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/functions/openapi.html
谢谢, 看到了。 openapi 我试验鉴黄的时候总出错。 我现在去按着文章试试。 非常感谢!
对了, 我想用云函数开发一个小商城,但调试很不方便, 有啥建议吗?
我试验了一次, 还是出问题。 是不是我哪里配置错了呢? 帮我看看
模板id 和formid 没有问题吗?
这两个是例子里的没做修改。 应该是有问题的。 你测试能过吗?
小程序的我写过 配好模板 接口 然后把参数传给后台 后台去访问服务接口 我在前端也测试过 把不校验域名勾上 也能发消息 但是云开发的没写过 刚接触 但是你没有模板id 和formid 肯定不行啊