40001:access_token is invalid or not latest hints

来源:9-5 HTTP API触发云函数获取歌单列表

慕前端7951612

2020-04-14

老师: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。

写回答

1回答

谢成

2020-04-14

这个和是否上线无关。

https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/access-token/auth.getAccessToken.html#Object

//img.mukewang.com/szimg/5e95b0fb09df7ca810760408.jpg

根据目前的状态码来看,是AppSecret参数不对,状态码应该是不会错的,所以还是得认真检查一下AppSecret的值。


另外,我也查了社区中同样的问题,我看有些是偶尔出现,然后官方也没给出个明确解释。。。

你这里是不是一直都是这个问题?

0
9
慕侠3425835
回复
慕前端7951612
怎么解决的,我的也是这样
2022-03-29
共9条回复

微信小程序云开发-从0打造云音乐全栈小程序

横跨小程序端、云后端、CMS一站式云开发的小程序全栈课程

1938 学习 · 2768 问题

查看课程