老师:access_token所写入的文件我删掉重新生成,可以看到创建时间为最新(可以推断getAccessToken函数没有问题)。可在浏览器向服务器发送请求时,会出现40001错误。我目前没有将前端代码上线审核,和这个有关系吗?
我的appid只有一个,应该不会错。图:
在获取AppSecret的时候,直接点重置。然后放在代码中,代码如下:
错误提示:
查看微信社区,有很多人出现这个问题,但他们大多是有时有用,有时出错。我刷新很多次,还将token删掉很多次,没有一次能成功。应该是我别的地方出错了。
调用代码没有问题:
router.get('/list',async(ctx,next)=>{
const ACCESS_TOKEN = await getAccessToken()
console.log(ACCESS_TOKEN) //后面控制台可以看到能打印(图4)。这里没有问题
//查询歌单列表
const url = 'https://api.weixin.qq.com/tcb/invokecloudfunction?access_token=${ACCESS_TOKEN}&env=${ENV}&name=music'
const options = {
method: 'POST',
uri: url,
body: {
$url:'playlist',
start:0,
count:50
},
json: true // Automatically stringifies the body to JSON
};
await rp(options)
.then( (res)=>{
console.log(res)
})
.catch(function (err) {
// POST failed...
});
ctx.body='歌单列表'
})
module.exports = router
控制台:
(图4)
到底会是哪里有问题呢?
在测试的过程中,也发现在调用access_token中存在缺陷,无法判断access_token是否正确(只能从时间上判断)不知道后面的课程会不会有。这个问题可以在发送请求的catch里,把保存access_token文件删掉,重新再调用这个函数(可设置循环次数)。我暂时先不整理这里的代码,也不知道是否有必要。我在重置密钥后,手动删除保存的access_token文件。让它重新生成,可以看到access_token更新了。但还是会报40001。