什么是微信开发第一步?
微信公众平台开发第一步详解
如果有人问你,微信体系下,开放平台、公众号、小程序开发第一步是做什么?
我的回答是获取微信access_token
。access_token是公众号的全局唯一接口调用凭据, 没有凭据后面的其他接口,都没法调用。
公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
官方文档地址:
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140183
接口地址
https请求方式: 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}
调试工具
微信官方为了大家开发公众号时,提供大家的开发效率,特地给开发者上线了一套调试工具
https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=基础支持&form=获取access_token接口%20/token
功能实现
这个功能,只需要调用这个接口,然后返回access_token,我们就不搭建Liunx,PHP,node等环境,直接用当今流行的Serverless
相关平台的Faas(云函数)功能。 这里使用的是Bmob后端云,当然你用阿里、腾讯、华为等等厂商支持Faas(云函数) 功能的都可以,只是语法稍微有点不同,这些开发小程序、公众号都可以。 比自己搭建服务器要快很多。
前期准备
第一步:准备配置信息
登陆微信平台
进入开发-》基本配置
拿到
开发者ID(AppID)与开发者密码(AppSecret),开发请求时需要用到。
第二步:编写云函数
首先你有个Bmob后端应用,点击进入云函数。选择模板创建,当然你也可以自己变。
自己编写代码,我们有一点javascript基础,或者java基础都可以。这里介绍下Nodejs
文档地址:http://doc.bmob.cn/cloud_function/web/develop_doc/#http_1
HTTP请求对象
oHttp对象可以模拟实现get、post、put、delete等各种HTTP请求信息,让你在云端实现诸如数据采集、OAuth授权登录等功能。Bmob的HTTP请求模块采用Nodejs提供的request模块,这里提供简单的Get和Post的操作实例。更多的功能详细参考:https://npmjs.org/package/request
/**
*发起Get请求
*/
//获取Http模块
var http = modules.oHttp;
//发起Get请求
http('https://www.bmob.cn', function (error, res, body) {
response.send(body);
});
-
/**
*发起Post请求
*/
//获取Http模块
var http = modules.oHttp;
var options = {
"url": 'https://api.bmob.cn/1/classes/GameScore',
"headers": {
'X-Bmob-Application-Id': 'Your Application ID',
'X-Bmob-REST-API-Key': 'Your REST API Key',
'Content-Type': 'application/json'
},
"body":JSON.stringify({"score":1337,"playerName":"Sean Plott"})
};
http.post(options, function(error, res, body) {
response.send(body);
});
微信access_token,这里只需要发起一个get请求,地址是这样。
https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=基础支持&form=获取access_token接口%20/token
/**
*发起Get请求
*/
//获取Http模块
var http = modules.oHttp;
var url ="https://mp.weixin.qq.com/debug/cgi-bin/apiinfo?t=index&type=基础支持&form=获取access_token接口%20/token";
//发起Get请求
http(url, function (error, res, body) {
response.send(body);
});
不到10行代码,我们就可以拿到微信开发必备的access_token,access_token微信是有次数限制的,当然不能这么每次获取使用, 这样只要请求次数多,每月必定超出微信给的次数。 微信官方说:access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效, 那我们就给这个函数的结果保存到数据库,做个定时任务2小时执行一次。然后需要时读取数据库,这样就不会担心超了。
第三步:access_token保存数据库
我们在控制台建一个WeiXin_access_token表,增加access_token字段,里面随便增加一条记录,拿到id,用来更新这条记录。当然你也可以把每次获取的access_token插入到这个表,需要的时候获取到最新的一条。
云函数数据表操作文档:http://doc.bmob.cn/cloud_function/web/develop_doc/#_9
function onRequest (request, response, modules) {
//获取数据库对象
var db = modules.oData;
//这里放到表里的ID
var objectId = 'NJEi333B';
//http请求方式: GET
var appid = 'wxd1b8c236059cd569';
var secret = 'xxxxxxxxx';
var url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + appid + '&secret=' + secret;
//获取Http模块
var http = modules.oHttp;
//发起Get请求
http(url, function (error, res, body) {
if (!error && res.statusCode == 200) {
//写入数据库
var resultObject = JSON.parse(body);
//如果返回错误则打印
if (resultObject.errcode) {
response.send(resultObject);
}
//更新到数据表
db.update({
"table": "WeiXin_access_token",
"objectId": objectId,
"data": { "access_token": resultObject.access_token }
}, function (err, data) {
response.send("success" + data);
});
}
});
//获取微信access_token END
}
第四步:读取access_token暴露给其他平台调用
新建个空白云函数,里面编写一下代码
function onRequest(request, response, modules) {
//数据库对象
var db = modules.oData;
//查询一条数据
db.findOne({
"table":"WeiXin_access_token",
"objectId":"NJEi333B"
},function(err,data){
//JSON打印给客户端
response.send(data);
});
}
这里是代码的执行结果,需要预览,可以打开一下链接。
http://cloud.bmob.cn/3fbee3a417249ddf/token
一样不到10行代码,即可暴露access_token给其他平台调用。
总计不到20行代码,不需要10分钟,就可以实现微信整个access_token的维护,与暴露给其他平台使用。最后还有一个关键问题, 2小时自动刷新access_token。
第四步:自动刷新access_token
Bmob平台云函数支持liunx下面的crontab语法定时任务,当然国内其他公司的云函数也是支持定时任务的,具体看开发文档。
http://doc.bmob.cn/cloud_function/web/timing_tasks/
总结:
我们可以看到Serverless
的Faas 开发微应用,开发效率比传统自己购买云主机,云数据库。高出很多倍。以至于国内这2年,阿里、腾讯、华为等云厂商都推出了自己的Faas 服务。大家都可以去体验一下,你只需要关系业务代码,不再需要去了解框架、运维、底层相关技术。
博主真是太厉害了!!!
想想你的文章写的特别好
想想你的文章写的特别好
《你是猪么》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/163469.html
你的文章让我心情愉悦,每天都要来看一看。 http://www.55baobei.com/NQ1kuxbEsL.html
你的文章让我心情愉悦,每天都要来看一看。 http://www.55baobei.com/FTBdRb5QCi.html
你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/9qX85KeS6h.html
《园丁1912》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/122607.html
你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/FJlEU35YlI.html
《返乡》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/21011.html
你的文章让我感受到了生活的美好,谢谢! https://www.yonboz.com/video/14681.html
你的文章让我感受到了不一样的风景,谢谢分享。 https://www.yonboz.com/video/86975.html
《罗拉快跑》动作片高清在线免费观看:https://www.jgz518.com/xingkong/96287.html
《Table 跟着古代食谱学做菜》日本剧高清在线免费观看:https://www.jgz518.com/xingkong/141834.html
文字流畅如丝,语言优美动人,读来令人心旷神怡。
老话题新解读,展现了深刻的反思精神。
文章紧扣主题,观点鲜明,展现出深刻的思考维度。
立意高远,以小见大,引发读者对社会/人性的深层共鸣。
意象选取精妙,营造出空灵意境。
这是一篇佳作,无论是从内容、语言还是结构上,都堪称完美。
新盘首开 新盘首开 征召客户!!!
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘首开 新盘首开 征召客户!!!
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com
2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
新车首发,新的一年,只带想赚米的人coinsrore.com
新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
新车上路,只带前10个人coinsrore.com
新盘首开 新盘首开 征召客户!!!coinsrore.com
新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
新车即将上线 真正的项目,期待你的参与coinsrore.com
新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com