微信公众号开发-获取 access_token(C# )

作者:vkvi 来源:ITPOW(原创) 日期:2017-1-26

注意:现在获取 access_token,需要在公众号“开发 -> 基本配置 -> 公众号开发信息 -> IP 白名单”中配置上调用者的互联网 IP,否则会报错 40164 错误。

本文介绍客户端模式(client_credential 模式)下,获取 access_token。

上面这句话是什么意思呢?就是说微信有些服务是不需要用户登录的,微信授权给开发者,开发者可以使用该服务,但使用服务之前需要将 app_id、app_secret 兑换成 access_token。每天限调 2000 次。

再具体点说,就是:如果你希望用自己的软件管理公众号的素材、管理公众号的消息、管理公众号的菜单、管理公众号的用户……,就要与微信做接口,接口中要传输一个凭据,证明你是有权限管理这些东西的,这里就是客户端模式下的 access_token。

好了,现在先从微信官网拿到 app_id、app_secret,微信接口有多种:一种是公众号的接口,这个的话就进入公众号后台,就可以拿到 app_id、app_secret 值;还有就是开放平台接口,在开放平台注册后,也可以拿到 app_id、app_secret 值。

然后用以下代码就可以获取 access_token:

关于 WebClient 请参见:ASP.NET 抓取网页内容-用 WebClient 轻松实现文件下载上传、网页抓取

关于 JSON 字符串与类的转换,请参见:C# 中处理 JSON

拿到 access_token,就可以享受一些不需要用户登录的服务了。

不应频繁获取 access_token,因为微信作了频次限制,目前是每天 2000 次,所以应该在 access_token 过期之前(当前微信规定的有效期是 2 小时)去刷新它,在刷新的时候,微信还是做得比较好,在刷新的那小段时间里,新老 access_token 均有效,这是为了避免刚刷新,那边也刚使用了老的,造成那边使用的时候无效。

还是云里雾里?不管了,反正这个也没啥意思,接着看连载的下一集吧,应该你会感兴趣。

相关文章