<微信应用开发系列>定时刷新AccessToken
2024-10-12 19:00:21
微信内嵌H5站一直很火,很多公司也想借助微信的用户群和社交群来做点事情,所以对于各位代码君来说也算是一个研究方向吧。
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
公众号可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在微信公众平台官网-开发者中心页中获得(需要已经成为开发者,且帐号没有异常状态)。注意调用所有微信接口时均需使用https协议。
请求地址: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 |
返回说明:{"access_token":"ACCESS_TOKEN","expires_in":7200}
参数 | 说明 |
---|---|
access_token | 获取到的凭证 |
expires_in | 凭证有效时间,单位:秒 |
最近做了个demo,功能就是定时取请求微信服务器获取accesstoken保存到mongodb数据库中,在有业务需求需要用到accesstoken时就直接取mongodb中的最新一条accesstoken记录。
Code->业务操作方法:
/// <summary>
/// 获取AccessToken
/// </summary>
/// <returns></returns>
public static MWeChatToken GetToken()
{
var token = new MWeChatToken();
var url = string.Format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}", AppId, AppSecret);
var msg = HttpReq(url, "POST", Encoding.UTF8, ); try
{
var toJson = new JavaScriptSerializer();
token = toJson.Deserialize<MWeChatToken>(msg);
}
catch (Exception ex)
{
Log.Error(ex);
}
return token;
}
Code->保存到数据库:
public static void SetToken()
{
const string dbString = "Wechat";
const string colString = "WeChatToken";
var model = GetToken();
if (model == null) return;
var mongoClient = new MongoClient(Conn); var mdb = mongoClient.GetServer().GetDatabase(dbString);
var mCollection = mdb.GetCollection(colString); mCollection.Insert(model);
mongoClient.GetServer().Disconnect();
}
最新文章
- JSON扩展类——JsonHelper
- iOS 隐藏状态栏
- C++的性能C#的产能?! - .Net Native 系列《一》:.NET Native安装和配置
- Python学习07——字典(2)
- python 整齐输出与编码读写
- .PRT extension and multiple NX versions
- [LintCode] Candy 分糖果问题
- linux用命令行来执行php程序
- [工作积累] Software keyboard not shown on Activity.onCreate
- ios按钮点击后翻转效果
- Java中url传递中文参数取值乱码的解决方法
- Spring MVC 中的REST支持
- Codeforces Round #258 (Div. 2) B. Sort the Array
- 浅析js模板引擎
- 如何编写高质量CSS
- CoreGraphics--画线/圆/矩形
- Oracle的instr函数
- tomcat配置虚拟路径保存、访问图片
- 洛谷 P1219 八皇后【经典DFS,温习搜索】
- python3 Flask -day2