QQ小程序开发教程之获取access_token
QQ小程序开发教程之获取access_token:
第一步首先看看官方文档对access_token的介绍,搞明白access_token是什么:
access_token
access_token
是小程序全局唯一后台接口调用凭据,调用绝大多数后台接口时都需使用,开发者可以通过 getAccessToken
接口获取并进行妥善保存。
为了 access_token
的安全性,后端 API 不能直接在小程序内通过 qq.request
调用,即 api.q.qq.com
不能被配置为服务器域名,开发者应在后端服务器使用getAccessToken
获取 access_token
,并调用相关 API;
请求参数说明
对于 GET 请求,请求参数应以 QueryString 的形式写在 URL 中。
对于 POST 请求,部分参数需以 QueryString 的形式写在 URL 中(一般只有 access_token
,如有额外参数会在文档里的 URL 中体现),其他参数如无特殊说明均以 JSON 字符串格式写在 POST 请求的 body 中。
总结一下:说白了就是这个QQ小程序皇宫给了你的小程序一个通行口令,你必须要用你的小程序appid和密匙去获取这个通行口令,必须有这个通行口令才能在皇宫里面干更多的事情。
第二步再看看如何去获取access_token,搞明白怎么获得access_token:
GET https://api.q.qq.com/api/getToken?grant_type=client_credential&appid=APPID&secret=APPSECRET
第三步再看看access_token有什么用?
基本上在QQ小程序上调用绝大多数后台接口时都需使用 access_token,开发者需要进行妥善保存,举个最简单的例子就是发送模板消息,或者订阅消息,都需要用到 access_token。
这里再附录一篇更加深刻的理解文章:
OpenID:为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,OpenID是使用用户微信号加密后的结果,每个用户对每个公众号有一个唯一的OpenID,开发者可通过OpenID来获取用户基本信息。
UnionID:用来区分用户的唯一性,因为只要是同一个微信开放平台帐号下的移动应用、网站应用和公众帐号,用户的UnionID是唯一的。换句话说,同一用户,对同一个微信开放平台帐号下的不同应用,UnionID是相同的。
AppID:接口身份证号。
AppSecret:密码。
access_token:access_token是加密的字符串,其目的是为了接口安全考虑,不然随便就能调用微信服务器的接口会有很大风险,相当于用户登陆后微信给用户的凭据,证明你已经登陆,相当于你拿着票去看演唱会,说明你已经买票了,才会让你进。
access_token使用注意事项:
(1)为了保密appsecrect,第三方需要一个access_token获取和刷新的中控服务器。而其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则会造成access_token覆盖而影响业务。
(2)目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器对外输出的依然是老access_token,此时公众平台后台会保证在刷新短时间内,新老access_token都可用,这保证了第三方业务的平滑过渡。
(3)access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。
access_token两小时过期时间的设计原因(网络解释):access_token的过期也是为安全考虑。
(1)想象一种情况,我授权了一个应用,它拿到了我的access_token,然后我忘记我授权过了,于是我以后每次发布的内容都被它拿去存起来,或者它利用我的账号偷偷的发消息,我一点都不知道。这种情况还是很可怕的。
(2)如果只是做登录,确实不需要accesstoken,因为已经有openid或者uid跟你的用户对应起来了。但是,这是授权行为啊,意味这第三方应用可以拿着accesstoken去取你的数据啊。所以这里就需要时效性来保证安全了。
access_token两小时过期时间的设计原因(自我理解):微信的token两小时刷新一次是因为第三方服务器接入微信服务器,目的是获取微信服务器中的数据,也就是所谓的第三方登陆,用户通过第三方服务器登陆,第三方服务器再去微信平台获取数据,这样就需要一个授权的过程,也就是说微信服务器同意你某个第三方服务器获取数据才行,为了把控这个授权过程,不会因为授权之后就一直能获取微信服务器数据这种情况的发生,所以才有了两小时刷新一次。
本站为避免不必要的纷争,分享的所有资源中一切可能有版权风险的资源将全部转载自第三方网站或平台,站长只为大家提供相关资源的介绍和跳转引导。 因可能有疏忽大意,所以如有遗漏资源侵犯了您的合法权利,请联系站长删除。
【小程序源码网资源下载使用说明】:
本站所分享的一切QQ小程序源码,thinkphp整站源码,微信小程序源码,图文教程等资源仅供用户学习参考使用,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网毫无人看的介绍】:
本站又称Z站,原名贼娘网,开站于2018年,换过三任站长,目前站长是第四任站长,本站是一个主要分享免费开源小程序源码/网站源码/免费素材/教程资源的网站,主要小程序资源有用于学习的小程序源码,也有正版原创可商用的小程序源码,是一个公益博客型网站。
【小程序源码网原创源码版权申明】:
未经小程序源码网许可,任何人不得擅自使用本站原创首发源码进行商业行为(除本站VIP用户在期限内,版权无使用限制),否则将依法承担相应赔偿责任。
【小程序源码网转载文章版权申明】:
本站所转载的QQ小程序或微信小程序源码与其他资源仅供学习,任何人不得作其他用途,违者自行承担所有责任。
【小程序源码网站长最后的屁话】:
如有您认为本站有任何侵犯您合法权益的文章,或者您有什么疑问需求,欢迎联系站长QQ,站长24小时在线,备注公司名称和源码版权问题或者需要小程序定制开发等站长业务类型可急速处理,如果您只是交流小程序的一些开发问题或源码问题可以加入QQ群讨论,就不用加站长啦,对于白嫖党,QQ群才是处理问题的天堂,当然站长也欢迎大家骚扰~
小程序源码网 » QQ小程序开发教程之获取access_token