php - 批量获取微信用户信息,在循环中多次请求微信url链接,带上的access_token失效

 不要说话-2502882353 发布于 2022-12-01 13:57

在获取上万条微信信息时,用循环多次请求微信链接带上获取的access_token,但在运行的过程中出现这样的错误{"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest"},循环过程中保存数据所用的时间也没有超过access_token的有效时间。代码如下:请问是怎么回事

8 个回答
  • 加上判断,失效时重新获取Access token
    可能有次数限制?

    2022-12-01 14:22 回答
  • 7200秒有效你就应该获取了之后继续使用而不是120秒之后就再次获取,access_token每天获取次数是有限的。

    access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

    2022-12-01 14:22 回答
  • 楼主我能问你一个问题么 关于授权的

    2022-12-01 14:22 回答
  • 题主你好,我遇到了与你类似的问题,在较短时间内,多次用access_token去调用微信其他接口总是会出现
    {"errcode":40001,"errmsg":"invalid credential, access_token is invalid or not latest hint: [QZ.Jja0059ent1]"}
    我是用定时器每一个小时内获取授权token,然后存到memcached缓存中。理论上讲,这一个小时内这个token一直是有效的,但结果是,每次频繁利用token调用其他的接口时,总会报token失效。
    排除appsecret错误的问题,因为如果appsecret错误,所有调用结果都是失败,而不会只出现在利用token频繁调用其他接口的情况下。
    这个问题那么长时间了,题主应该解决了吧?希望题主赐教。

    2022-12-01 14:22 回答
  • 我现在也是遇到类似的问题 ,我设置access_token有效期是3600s ,我也是for循环 , 在for循环里面发送模板消息。,理论上access_token的有效期是7200s , 那么我设置3600s 应该可以的 过期之后我会重新的拉取!!

    2022-12-01 14:22 回答
  • 是啊,不知道为什么。我用了一个定时器没7200s去获取AccessToken,但是每次拿回来的AccessToken,发送支付客服消息,过一会儿就失效了。

    测试的时候,发现即使是立刻刷新拿回来的token会抱42001的错误。不知道为什么,求赐教啊

    2022-12-01 14:22 回答
  • 除了时间判断和集中存储的问题,更重要的是在使用时判断返回结果响应是否要更新AccessToken,微信服务器群集在处理AccessToken的时候本身就不同步。就以获取微信服务器IP地址为例,当你主动将AccessToken失效后,调用这个接口是一下成一下失败的,并且当你更新AccessToken后马上调用也会出现时好时坏的问题。折腾半天还是用了比较恶心的方式来处理的。

    var userInfo = Invoke((token) => { return UserApi.Info(token, openid); });

    在Invoke函数里进行最多3次重试的循环调用,如果发现失效则立即更新。

    public static T Invoke<T>(Func<string, T> invokeFunc)
    2022-12-01 14:22 回答
  • 这个微信开发论坛管理员已经回答过了

    所以可以采取的方案是去带token请求一个另外的没有次数限制的接口,如果token失效,重新生成TOKEN,如果没有失效,继续之前的逻辑

    2022-12-01 14:22 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有