- 云开发小程序如何批量导入题库
本文背景之前也写过一篇类似的文章,但是当时转换工具生成的JSON文件还是需要一些手工加工的操作,后面对该转换工具进行了一定的优化,今天基于这个前提,讲下如何将一个题库文件,导入到云开发的集合中 本文内容1)按照题库模板整理好excel文件; 2)打开excel转换工具链接,该链接视小程序情况而定,具体可跟开发者沟通; https://www.xiaomutong.com.cn/index20200501.html https://www.xiaomutong.com.cn/index20200301.html https://www.xiaomutong.com.cn/index20200401.html 3)如下图所示,在第二个文本框内填写对应的题库编号,题库编号建议按照001、002、003这种命名方式; 比如某小程序的题库如下所示 [图片] [图片] 4)上传文件,点生成JSON按钮,此时会生成一个JSON文件,打开该文件如下图所示 [图片] 5)导入到对应集合中去,一般而言题目集合为question、questions,要根据当前小程序具体情况而定; 6)到小程序中进行题库切换并验证 本文总结本文具体描述 了如何将excel文件导入到对应的集合。
2020-11-30 - 为啥抽奖助手能在小程序内跳转关注公众号
这个问题已经有人问过了,然后人家那个官方过来的回答是去看新出的那个扫码的关注公众号的功能。 我试过了抽奖助手的关注公众号的流程,是打开的webview,然后通过下拉屏幕的时候,可以看到域名是 mp.weixin.qq.com 所以可以看出来是跳转的公众号的文章,公众号所编辑的文章,都是放在微信的这个域名的目录下。那这个公众号文章网页下,就可以排除页面内的js或者其他的手段,因为只能通过公众号后台的编辑生成,没办法手写代码来改动。 以上成立的条件下,我也试了用小程序关联的公众号的文章,结果公众号的那个蓝色超链接闪一下就灰了,点不进去。
2018-10-09 - 小程序个人独立开发者如何突围
本文背景最近在社区或者群里,看到不少有关个人小程序独立开发者抱怨收益少的问题,那么今天就建个帖子围绕这个话题具体阐述下我个人的看法,个人独立开发者可以通过开发小程序得到哪些收获 本文内容小程序独立开发者通过不断打磨小程序提供好的服务,最主要的目的还是想获得一定的回报,要说用爱发电,其实我是不信的 当看到下面这个截图,我就感到纯粹靠流量主收益,是不可能的,当然身边也有不少小程序开发者,通过流量主每天可以获得不少的收益,这个是客观存在的 f [图片] f [图片] [图片] [图片] f 我在之前有文章专门讲过对于小程序个人独立开发者如何获取收益,其中流量主是最直接,也是首先会考虑的,毕竟开通流量主之后,赚取的收入都是睡后收入,也就是日常说的被动收入,水管收入,是源源不断,不需要额外花精力的 那么当我们经过一段时间运营,流量主收入始终毫无起色的时候,我们该如何突围? f [图片] f 本文背景本文通过分析目前小程序的收益方式,并进而阐述单纯依靠流量主获取收益的难度,最后给个人独立开发者打打气,不要放弃,机会总是留给有准备的人 未完待续
2020-08-17 - 公众号文章可以加一排小点点作为分割线吗,效果是这样都得,然后我需要放文中广告,这算违规吗?
[图片] [图片] [图片] 效果是这样的,本人是放壁纸的,但是不好码太多的文字,就想着加小点点作为分隔符,一方便美观,另一方面可以插入文中广告,大佬们,这样可以吗,求官方大佬为我解答。
2019-12-01 - 【Java后台】校验一张图片是否含有违法违规内容
更新时间:2020年9月29日 具体介绍可查看 https://blog.csdn.net/u010651369/article/details/101697940 修改了提供的接口地址。可以直接调用了。 https://apis.ydxiaoshuai.cn/xai/rest/check/general_url 传递图片URL地址 https://apis.ydxiaoshuai.cn/xai/rest/check/general_file 传递图片FILE文件 接口文档地址:http://api.ydxiaoshuai.cn/1961525 近期应该部分个人开发者小程序会收到如下通知 [图片] 为了快速解决问题,就直接使用官方提供的接口 imgSecCheck校验一张图片是否含有违法违规内容 个人小程序只是图片的一些处理识别。固只拿imgSecCheck接口进行代码示例了。 1.在自己的Java后台服务增加接口调用(api.weixin.qq.com不能直接加入小程序安全域名中) 2.在小程序选择图片后优先走违法违规校验。校验通过再走自己的业务代码。 Java实现获取小程序的图片文件并进行违法违规校验 wx.uploadFile 传递图片文件到后台 [代码] wx.uploadFile({ url: 图片违法违规校验接口地址, filePath: res.tempFilePaths[0], header: { 'content-type': 'multipart/form-data' }, name: 'file', success: function(checkres) { var checkResult = JSON.parse(checkres.data); console.info(checkResult); if (checkResult.errcode == '0') { //校验没有违法违规进行自己业务代码处理 } else { if (checkResult.errcode == '87014') { wx.hideLoading(); wx.showModal({ content: '存在敏感内容,请更换图片', showCancel: false, confirmText: '明白了' }) } else { wx.hideLoading(); wx.showModal({ content: '其他错误,稍后再试', showCancel: false, confirmText: '明白了' }) } } } [代码] 后台代码 [代码]/** * 图片过滤检测 * @param file 图片文件 * @return */ @RequestMapping(value = "/imgcheck", method = {RequestMethod.POST}) @ResponseBody public AccessTokenWX checkPic(@RequestParam(value = "file") MultipartFile file, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { String token = ""; //自己写一个定时任务或其他方式 获取AccessToken AccessTokenWX accessTokenWX = new AccessTokenWX(); try { token = getAccessTokenJob.getAccessToken(); String url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=" + token; String result = uploadFile(url, file); accessTokenWX = JSON.parseObject(result, AccessTokenWX.class); System.out.println("图片检测结果 = " + result); return accessTokenWX; } catch (Exception e) { System.out.println("----------------调用腾讯内容过滤系统出错------------------" + e.getMessage()); accessTokenWX.setErrcode("500"); accessTokenWX.setErrmsg("system错误"); return accessTokenWX; } } /** * 上传二进制文件 * @param graphurl 接口地址 * @param file 图片文件 * @return */ public static String uploadFile(String graphurl,MultipartFile file) { String line = null;//接口返回的结果 try { // 换行符 final String newLine = "\r\n"; final String boundaryPrefix = "--"; // 定义数据分隔线 String BOUNDARY = "========7d4a6d158c9"; // 服务器的域名 URL url = new URL(graphurl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); // 设置为POST情 conn.setRequestMethod("POST"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); // 设置请求头参数 conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("Charsert", "UTF-8"); conn.setRequestProperty("Content-Type","multipart/form-data; boundary=" + BOUNDARY); conn.setRequestProperty("User-Agent","Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"); OutputStream out = new DataOutputStream(conn.getOutputStream()); // 上传文件 StringBuilder sb = new StringBuilder(); sb.append(boundaryPrefix); sb.append(BOUNDARY); sb.append(newLine); // 文件参数,photo参数名可以随意修改 sb.append("Content-Disposition: form-data;name=\"image\";filename=\"" + "https://api.weixin.qq.com" + "\"" + newLine); sb.append("Content-Type:application/octet-stream"); // 参数头设置完以后需要两个换行,然后才是参数内容 sb.append(newLine); sb.append(newLine); // 将参数头的数据写入到输出流中 out.write(sb.toString().getBytes()); // 读取文件数据 out.write(file.getBytes()); // 最后添加换行 out.write(newLine.getBytes()); // 定义最后数据分隔线,即--加上BOUNDARY再加上--。 byte[] end_data = (newLine + boundaryPrefix + BOUNDARY + boundaryPrefix + newLine).getBytes(); // 写上结尾标识 out.write(end_data); out.flush(); out.close(); // 定义BufferedReader输入流来读取URL的响应 BufferedReader reader = new BufferedReader(new InputStreamReader( conn.getInputStream())); while ((line = reader.readLine()) != null) { return line; } } catch (Exception e) { System.out.println("发送POST请求出现异常!" + e); } return line; } [代码] 为了方便大家。我这里直接封装了一个接口供大家使用 接口地址:https://www.ydxiaoshuai.cn/xai/rest/token/imgcheck/general 请求方式: POST Body参数: [代码]access_token 接口调用凭证 file 图片文件 [代码] POSTMAN截图示意 [图片] 实现Controller代码如下 [代码]/** * 图片过滤检测 * @param file 要校验的图片 * @param access_token 接口调用凭证 * @return */ @RequestMapping(value = "/imgcheck/general", method = {RequestMethod.POST}) @ResponseBody public AccessTokenWX checkPicgeneral(@RequestParam(value = "file") MultipartFile file, String access_token,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { logger.info("获取access_token======" + access_token + "访问的ip" + httpServletRequest.getRemoteAddr()); AccessTokenWX accessTokenWX = new AccessTokenWX(); try { String url = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=" + access_token; String result = uploadFile(url, file); accessTokenWX = JSON.parseObject(result, AccessTokenWX.class); System.out.println("图片检测结果 = " + result); return accessTokenWX; } catch (Exception e) { System.out.println("----------------调用腾讯内容过滤系统出错------------------" + e.getMessage()); accessTokenWX.setErrcode("500"); accessTokenWX.setErrmsg("system错误"); return accessTokenWX; } } [代码]
2020-09-29