• 公众号获取推广二维码问题(获取access_token的时侯报错access_token is invalid or not latest hints)


    这个问题,网上的回复有的是通过更新开发者密码(AppSecret)搞定的,有的是拼写错误改正了的。我这边这个问题都不是,几年前做的时侯没太留意,把网上的代码拷贝过来改改就出结果了,这次遇到的问题其实是几个基本概念要再次明确,微信在这种api文档上描述得很轻描淡写。

    参考微信的文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

    几个重要的点罗列一下:(注意标红的这句话)

    一、关于网页授权的两种scope的区别说明

    1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)

    2、以snsapi_userinfo为scope发起的网页授权,是用来获取用户的基本信息的。但这种授权需要用户手动同意,并且由于用户同意过,所以无须关注,就可在授权后获取该用户的基本信息。

    3、用户管理类接口中的“获取用户基本信息接口”,是在用户和公众号产生消息交互或关注后事件推送后,才能根据用户OpenID来获取用户基本信息。这个接口,包括其他微信接口,都是需要该用户(即openid)关注了公众号后,才能调用成功的。

    二、关于网页授权access_token和普通access_token的区别

    1、微信网页授权是通过OAuth2.0机制实现的,在用户授权给公众号后,公众号可以获取到一个网页授权特有的接口调用凭证(网页授权access_token),通过网页授权access_token可以进行授权后接口调用,如获取用户基本信息;

    2、其他微信接口,需要通过基础支持中的“获取access_token”接口来获取到的普通access_token调用。

    所以,如果是针对二维码获取,应该使用普通access_token

    那么如何获取普通access_token呢?

    接口调用请求说明如下:

    http请求方式: GET
    https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
    

    参数说明

    参数是否必须说明
    grant_type 获取access_token填写client_credential
    appid 第三方用户唯一凭证
    secret 第三方用户唯一凭证密钥,即appsecret

    返回说明

    正常情况下,微信会返回下述JSON数据包给公众号:

    {"access_token":"ACCESS_TOKEN","expires_in":7200}
    参数说明
    access_token 获取到的凭证
    expires_in 凭证有效时间,单位:秒


    为了不频繁的获取,最好把access_token保存起来,在过期的时侯再重新获取。
  • 相关阅读:
    7个最好的免费杀毒软件下载
    VMware虚拟机扩容
    tomcat的JK和JK2
    面向对象——接口
    JPA入门样例(採用JPA的hibernate实现版本号)
    JAVA数组的定义及用法
    Styles and Themes
    OpenSSL再曝CCS注入漏洞-心伤未愈又成筛子
    纯文本抽出程序库DMC TEXT FILTER
    数据结构课程设计之通讯录管理系统
  • 原文地址:https://www.cnblogs.com/schyzhkj/p/12584194.html
Copyright © 2020-2023  润新知