收藏
回答

现在获取access_token到底用哪个接口?

作小程序顾客登录,到底用哪种接口获取access_token?我获取后用celery缓存1小时50分刷新请求一遍,供用户登录的时候获取手机号。

https://api.weixin.qq.com/cgi-bin/stable_token 还是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credentia


回答关注问题邀请回答
收藏

2 个回答

  • 我是小白
    我是小白
    12-08

    都可以,做定时请求的确可以,但是后端返回accesstoken过期之类的,你应该需要强制刷新token,而不是仅仅依赖你的定时刷新

    12-08
    有用 1
    回复 11
    • 何时间
      何时间
      12-08
      我是开发阶段,一直用的GET https://api.weixin.qq.com/cgi-bin/token,用celery定时更新access_token,同时更新3个小程序的。一直是一个人用,主要是登录到时候要获取用户手机号,必须要这个access_token。昨天让十几个同事登录小程序试用,他们陆续登录第一个小程序,大概 半个小时后就报错了: {'errcode': 40001, 'errmsg': 'invalid credential, access_token is invalid or not latest, could get access_token by getStableAccessToken, more details at https://mmbizurl.cn/s/JtxxFh33r rid: 6935747f-6d3cb9a1-438a4fa4'}
      我一看,40001是令牌失效了,但是我登录另外2个小程序又正常,我手动更新access_token,就恢复正常了。
      网上搜了一下,说GET https://api.weixin.qq.com/cgi-bin/token要被弃用了,建议用POST https://api.weixin.qq.com/cgi-bin/stable_token 。不知道是真是假。
      access_token获得后,可以无限调用吧?难道还有限制?
      12-08
      回复
    • 我是小白
      我是小白
      12-08回复何时间
      你把accesstoken拿到之后存到数据库或者redis,作为中控统一调用即可,不要各用各的,stabletoken的过期时间不是7200秒,他会返回具体的过期时间expires_in,相当于腾讯给你做的中控。一般开发为了降低延迟等都会存在redis等缓存容器中调用
      12-08
      回复
    • 何时间
      何时间
      12-08回复我是小白
      是啊,我刷新就是放在redis,celery+redis,读取也快捷。
      12-08
      回复
    • 何时间
      何时间
      12-08
      我估计昨晚是个意外,可能以后不会随意出问题吧,还是继续用GET https://api.weixin.qq.com/cgi-bin/token吧,你说stabletoken的过期时间还不确定,不方便定时更新
      12-08
      回复
    • 我是小白
      我是小白
      12-08回复何时间
      “stabletoken的过期时间不是7200秒,他会返回具体的过期时间expires_in”,看这个,比如你第一次请求剩7200秒,你过了7000秒又请求一次,那就只剩200秒了,你存的还是一个多小时
      12-08
      回复
    查看更多(6)
  • 智能回答 智能回答 本次回答由AI生成
    12-08
    有用 1
登录 后发表内容