const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV}) exports.main = async (event, context) => { console.log("调用云函数openapi, 参数event:", event); let {name, data} = event; switch (name||event.action) { case "wxacode.getUnlimited": case "getWXACodeUnlimited":{ return getWXACodeUnlimited(data) } case "wxacode.get": case 'getWXACode': { return getWXACode(data) } case "security.msgSecCheck":{ try{ console.log("检查文本安全, 参数:", data); var res = await cloud.openapi.security.msgSecCheck(data); console.log("返回结果: ", res); return res; }catch(e){ return e; } } case "security.imgSecCheck":{ try{ console.log("检查图片安全, 参数:", data); if(data.media) var value = Buffer.from(data.media); else if(data.fileID){ var {fileID} = data; var res = await cloud.downloadFile({fileID}); var value = res.fileContent; } var res = await cloud.openapi.security.imgSecCheck({ media:{ contentType:"image/png", value } }); console.log("返回结果: ", res); return res; }catch(e){ return e; } } case "search.siteSearch":{ return cloud.openapi.search.siteSearch(data); } case "search.submitPages":{ return cloud.openapi.search.submitPages(data); } default: { return } } } async function getWXACodeUnlimited(data){ let {scene, page} = data; const wxacodeResult = await cloud.openapi.wxacode.getUnlimited({ scene, page }) const fileExtensionMatches = wxacodeResult.contentType.match(/\/([^\/]+)/) const fileExtension = (fileExtensionMatches && fileExtensionMatches[1]) || 'jpg' return cloud.uploadFile({ cloudPath: `images/wxacode/${(page+"?"+scene).replace(/[\/?&]/g, "_")}.${fileExtension}`, fileContent: wxacodeResult.buffer, }) } async function getWXACode(data) { let {path} = data; const wxacodeResult = await cloud.openapi.wxacode.get({ path }) const fileExtensionMatches = wxacodeResult.contentType.match(/\/([^\/]+)/) const fileExtension = (fileExtensionMatches && fileExtensionMatches[1]) || 'jpg' return cloud.uploadFile({ cloudPath: `images/wxacode/${path.replace(/[\/?&]/g,"_")}.${fileExtension}`, fileContent: wxacodeResult.buffer, }); }