请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

40001:access_token is invalid or not latest hints

老师: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回答

这个和是否上线无关。

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

https://img1.sycdn.imooc.com//szimg/5e95b0fb09df7ca810760408.jpg

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


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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕前端7951612 #1
    AppSecret参数我就是重置,然后复制。不知道会不会是因为我这个微信绑定了公众号导致。但小程序开发ID只有这一个
    回复 有任何疑惑可以回复我~ 2020-04-14 21:38:08
  • 提问者 慕前端7951612 #2
    从来没有成功过,不是偶尔
    回复 有任何疑惑可以回复我~ 2020-04-14 21:38:45
  • 提问者 慕前端7951612 #3
    非常感谢!已解决
    回复 有任何疑惑可以回复我~ 2020-04-15 10:00:28
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信