对微信小程序--导入抽样数据小功能的总结(20190420)

背景:1.从来没有接触过小程序的小白,被安排做实现这个功能
2.对于微信小程序的一些名词都不太懂,得事先搜索

任务:拿到自己想要的数据,按照微信官方“xxx导入数据格式文档”格式上传数据,并返回正确值
PS:做完才发现,也不是很难

过程:
这个小任务的重点就是,一定要按照微信官方“xxx导入数据格式文档”格式上传数据,一点儿都不能差!
1.面是文档的部分内容:

http请求方式:POST
http://api.weixin.qq.com/wxa/setdynamicdata?access_token=ACCESS_TOKEN

POST数据示例如下:

{
    "lifespan": 86400,
    "query": "{\"type\":1011072}",
    "scene": 1,
    "data": "{\"items\": [{XXX},{XXX},{XXX}], \"attribute\": {\"count\": M, \"totalcount\": N, \"id\": \"XXX\", \"seq\": i}}"
}

2.名词解析:
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。

公众平台的API调用所需的access_token的使用及生成方式说明:

<1>、建议公众号开发者使用中控服务器统一获取和刷新access_token,其他业务逻辑服务器所使用的access_token均来自于该中控服务器,不应该各自去刷新,否则容易造成冲突,导致access_token覆盖而影响业务;

<2>、目前access_token的有效期通过返回的expire_in来传达,目前是7200秒之内的值。中控服务器需要根据这个有效时间提前去刷新新access_token。在刷新过程中,中控服务器可对外继续输出的老access_token,此时公众平台后台会保证在5分钟内,新老access_token都可用,这保证了第三方业务的平滑过渡;

<3>、access_token的有效时间可能会在未来有调整,所以中控服务器不仅需要内部定时主动刷新,还需要提供被动刷新access_token的接口,这样便于业务服务器在API调用获知access_token已超时的情况下,可以触发access_token的刷新流程。

公众号和小程序均可以使用AppID和AppSecret调用本接口来获取access_token。AppID和AppSecret可在“微信公众平台-开发-基本配置”页中获得(需要已经成为开发者,且帐号没有异常状态)。调用接口时,请登录“微信公众平台-开发-基本配置”提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。小程序无需配置IP白名单。

重点记住:access_token目前是2小时内有效
PS :顺便贴上官方链接
https://mp.weixin.qq.com/wiki?action=doc&id=mp1421140183&t=0.2761844075184767

3.坑来了

我开始按照文档上的参数,全程使用JSON,最后返回的数据并非我想要得到的

全程使用 JSONObject js = new JSONObject();
然后js.put(“key”,“value”);

结果得到的却是:
{
“data”: {
“attribute”: {
“totalcount”: 1522,
“count”: 100,
“id”: “XXXX”,
“seq”: 0
},
“items”: ["{ “country”:“美国”,“city”:“德克萨斯”,“university_name”:“艾柏林基督大学”}"]
},
“lifespan”: 86400,
“query”: {
“type”: “XXXXX”
},
“scene”: 1
}

后来通过请教和仔细对比文档,才发现,他们都是通过 对象 的一步一步嵌套,最终解析的。(里里外外全是JSON)

通过查询,有的码农兄说是全部必须是JSON格式不仅是外面,data里的数据也是标准的JSON格式!
JSONObject用的是阿里巴巴的fastjson

仿佛看到了曙光,按照这个思路,从头来做,New对象、配置属性、循环掉数据、赋值、转JSON。。。。。
最后终于完成了,返回了想看到的

“{“errcode”:0,“errmsg”:“ok”}”

贴上全局返回码说明
对微信小程序--导入抽样数据小功能的总结(20190420)_第1张图片
中途经历的错误有:

{“errcode”:40164,“errmsg”:“invalid ip 114.253.247.109, not in whitelist hint: [BblmLA01182790]”}
错误解析:字面意思,你的IP不在小程序的白名单中,不让你访问
实质上是:我在自己直接链接GET请求尝试获取token的时候,本机没有在管理后台配置上我为白名单,所以微信后台不认识我IP,不让我访问,后来问了同事,才知道,项目里面有获取有效Token的方法(其实项目也是发送请求获得的,因为项目本身有参数配置,跑起来以后,发送请求就能返回token)

获取ToKen的官方链接,上面的官方链接里面有解析,这里就不多说了
https请求方式: GET
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

总结:通过这个小任务,初步了解了小程序相关的知识,还有JSON的使用有了深一步的了解,同时自己也申请了一个开发者帐号,可以开发,以后有空再分享,自己开发中的坑。

后面还会有第二部—配置后台测试接口 的任务让我做,等做完再来分享自己的坑。

你可能感兴趣的:(个人总结,微信,小程序,widget,抽样数据导入)