这里说的“通用接口(CommonAPIs)”是使用微信公众帐号一系列高级功能的必备验证功能(应用于开发模式)。html
咱们经过微信后台惟一的凭证,向通用接口发出请求,获得访问令牌(AccessToken),而后使用访问令牌去使用各项须要身份验证的高级功能,例如自定义菜单、获取用户信息、单发消息、群发消息等等。git
目前所有的服务号和经过认证的订阅号,均可以在微信公众帐号后台的【功能】>【高级功能】>【开发模式】下的“开发者凭据”一栏找到AppId和AppSecret两个字符串,这两个字符串就是得到AccessToken的依据,所以须要严格保密,若是发现有泄露的可能,或者出于安全策略,应当使用边上的“重置”按钮对AppSecret进行随机生成(注意AppId不会变化),而且同时修改程序中的对应参数。github
在Senparc.Weixin.MP SDK中,通用接口的基本方法都在Senparc.Weixin.MP.CommonAPIs命名空间下:web
文件说明以下:小程序
AccessTokenContainer.cs - 一个AccessToken容器(帮助自动更新AccessToken,由于每个AccessToken都有一个有效期)安全
CommonApi.cs - 提供获取AccessToken的通用方法微信
CommonApi.Menu.cs - 自定义菜单全部接口websocket
CommonJsonSend.cs - 对通用接口返回类型的一些封装处理app
有关上述类的详细方法及说明能够看开源代码的注释: https://github.com/JeffreySu/WeiXinMPSDK/tree/master/Senparc.Weixin.MP/Senparc.Weixin.MP/CommonAPIs微信公众平台
有了AccessTokenContainer,咱们能够直接这样获取AccessToken:
if (!AccessTokenContainer.CheckRegistered(appId))//检查是否已经注册 { AccessTokenContainer.Register(appId, appSecret);//若是没有注册则进行注册 } var result = AccessTokenContainer.GetAccessTokenResult(appId); //获取AccessToken结果
固然也能够更加简单地一步到位:
var result = AccessTokenContainer.TryGetAccessToken(appId, appSecret);
上述获取到的result有access_token和expires_in两个属性,分别储存了AccessToken字符串和过时时间(秒),若是使用AccessTokenContainer.TryGetAccessToken()方法,则能够完全忽略的expires_in存在,若是过时,系统会自动从新获取。
有了AccessToken,咱们就能够进行一系列丰富的高级功能操做了,固然也包括自定义菜单,请看随后文章的介绍(见《Senparc.Weixin.MP SDK 微信公众平台开发教程(九):自定义菜单接口说明》)。
固然,SDK也已经提供了全自动的AccessToken处理机制,包括自动处理(预期外的)AccessToken过时状况,开发者在调用高级接口的时候只须要提供AppId,忽略AccessToken的存在,相关内容请见《Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制》。
注意:在v14.2.1中,全部Senparc.Weixin.MP下的Container,命名空间已经从 Senparc.Weixin.MP.CommonAPIs 改成了 Senparc.Weixin.MP.Containers:[公告]Senparc.Weixin.MP v14.2.1 升级说明
地址:http://www.cnblogs.com/szw/archive/2013/05/14/weixin-course-index.html