学会微信服务端开发第一步

magic
2020-07-19 / 27 评论 / 8,992 阅读 / 正在检测是否收录...

什么是微信开发第一步?

微信公众平台开发第一步详解

如果有人问你,微信体系下,开放平台、公众号、小程序开发第一步是做什么?

我的回答是获取微信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(云函数) 功能的都可以,只是语法稍微有点不同,这些开发小程序、公众号都可以。 比自己搭建服务器要快很多。

前期准备

第一步:准备配置信息

登陆微信平台

https://mp.weixin.qq.com/

进入开发-》基本配置

image.png

拿到

开发者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_tokenaccess_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/

image.png

总结:

我们可以看到Serverless的Faas 开发微应用,开发效率比传统自己购买云主机,云数据库。高出很多倍。以至于国内这2年,阿里、腾讯、华为等云厂商都推出了自己的Faas 服务。大家都可以去体验一下,你只需要关系业务代码,不再需要去了解框架、运维、底层相关技术。

49

评论 (27)

取消
  1. 头像
    nzzuvmiiib
    Windows 10 · Google Chrome

    博主真是太厉害了!!!

    回复
  2. 头像
    lqmhihfoon
    Windows 10 · Google Chrome

    想想你的文章写的特别好

    回复
  3. 头像
    xhephdqllm
    Windows 10 · Google Chrome

    想想你的文章写的特别好

    回复
  4. 头像
    qvigkatxou
    Windows 10 · Google Chrome

    《你是猪么》国产剧高清在线免费观看:https://www.jgz518.com/xingkong/163469.html

    回复
  5. 头像
    uhphmoeiqk
    Windows 10 · Google Chrome

    你的文章让我心情愉悦,每天都要来看一看。 http://www.55baobei.com/NQ1kuxbEsL.html

    回复
  6. 头像
    jjxcazlkih
    Windows 10 · Google Chrome

    你的文章让我心情愉悦,每天都要来看一看。 http://www.55baobei.com/FTBdRb5QCi.html

    回复
  7. 头像
    viykjitehh
    Windows 10 · Google Chrome

    你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/9qX85KeS6h.html

    回复
  8. 头像
    ysfcuaspdi
    Windows 10 · Google Chrome

    《园丁1912》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/122607.html

    回复
  9. 头像
    qzoaaazycb
    Windows 10 · Google Chrome

    你的文章让我感受到了生活的美好,谢谢! http://www.55baobei.com/FJlEU35YlI.html

    回复
  10. 头像
    obatfyquab
    Windows 10 · Google Chrome

    《返乡》剧情片高清在线免费观看:https://www.jgz518.com/xingkong/21011.html

    回复
  11. 头像
    gpqiutrrhu
    Windows 10 · Google Chrome

    你的文章让我感受到了生活的美好,谢谢! https://www.yonboz.com/video/14681.html

    回复
  12. 头像
    byzzlxiuhm
    Windows 10 · Google Chrome

    你的文章让我感受到了不一样的风景,谢谢分享。 https://www.yonboz.com/video/86975.html

    回复
  13. 头像
    fqbvtqiulp
    Windows 10 · Google Chrome

    《罗拉快跑》动作片高清在线免费观看:https://www.jgz518.com/xingkong/96287.html

    回复
  14. 头像
    ezgdjitqpa
    Windows 10 · Google Chrome

    《Table 跟着古代食谱学做菜》日本剧高清在线免费观看:https://www.jgz518.com/xingkong/141834.html

    回复
  15. 头像
    abhhggkylk
    Windows 10 · Google Chrome

    文字流畅如丝,语言优美动人,读来令人心旷神怡。

    回复
  16. 头像
    xjvljfpizt
    Windows 10 · Google Chrome

    老话题新解读,展现了深刻的反思精神。

    回复
  17. 头像
    mnmsghsrgd
    Windows 10 · Google Chrome

    文章紧扣主题,观点鲜明,展现出深刻的思考维度。

    回复
  18. 头像
    vgugglxfdf
    Windows 10 · Google Chrome

    立意高远,以小见大,引发读者对社会/人性的深层共鸣。

    回复
  19. 头像
    crfkvkigti
    Windows 10 · Google Chrome

    意象选取精妙,营造出空灵意境。

    回复
  20. 头像
    iggepurvgn
    Windows 10 · Google Chrome

    这是一篇佳作,无论是从内容、语言还是结构上,都堪称完美。

    回复
  21. 头像
    vagnystues
    Windows 10 · Google Chrome

    新盘首开 新盘首开 征召客户!!!

    回复
  22. 头像
    sxnxkujqiw
    Windows 10 · Google Chrome

    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com

    回复
  23. 头像
    ecljtarijr
    Windows 10 · Google Chrome

    新车即将上线 真正的项目,期待你的参与coinsrore.com

    回复
  24. 头像
    fdidvaktmf
    Windows 10 · Google Chrome

    新盘首开 新盘首开 征召客户!!!

    回复
  25. 头像
    tfpizmhptx
    Windows 10 · Google Chrome

    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

    回复
  26. 头像
    dwmlbjymrd
    Windows 10 · Google Chrome

    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

    回复
  27. 头像
    ppjaaezmdy
    Windows 10 · Google Chrome

    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

    回复