[{"data":1,"prerenderedAt":546},["ShallowReactive",2],{"blog-\u002Fblog\u002Fwechat_mini_program_shanhu_image_content_safety":3},{"id":4,"title":5,"body":6,"category":528,"cover":529,"csdn":530,"date":531,"description":532,"draft":533,"extension":534,"meta":535,"navigation":119,"path":536,"seo":537,"stem":538,"tags":539,"updated":544,"__hash__":545},"blog\u002Fblog\u002Fwechat_mini_program_shanhu_image_content_safety.md","微信小程序 云开发 图片内容安全 珊瑚图片内容安全 API",{"type":7,"value":8,"toc":523},"minimark",[9,16,27,34,39,43,71,74,459,462,475,478,485,493,496,501,505,513,515,519],[10,11,12],"blockquote",{},[13,14,15],"p",{},"更新（2022-04-06）：腾讯这个产品已经下架，以下内容仅作为历史技术记录。",[13,17,18,19,26],{},"小程序需要对用户上传的照片做审核，可以使用珊瑚图片内容安全 API：",[20,21,25],"a",{"href":22,"rel":23},"https:\u002F\u002Ffuwu.weixin.qq.com\u002Fdetail\u002F000a246b6fca70b76a896e6a25ec15",[24],"nofollow","点击访问","。",[13,28,29],{},[30,31],"img",{"alt":32,"src":33},"在这里插入图片描述","https:\u002F\u002Fpub-5ec96507162a4f0a8e713a916117c9f4.r2.dev\u002Fblog\u002F83dc346f0e4b10007224884a7eb55738.png",[13,35,36],{},[30,37],{"alt":32,"src":38},"https:\u002F\u002Fpub-5ec96507162a4f0a8e713a916117c9f4.r2.dev\u002Fblog\u002F9985f9e6d33681d4b6386986bcba9508.png",[40,41,42],"h2",{"id":42},"审核流程",[44,45,46,50,53,61,68],"ol",{},[47,48,49],"li",{},"从相册选择图片。",[47,51,52],{},"上传到云存储。",[47,54,55,56,60],{},"调用 ",[57,58,59],"code",{},"getTempFileURL"," 获取临时文件地址。",[47,62,63,64,67],{},"调用云函数 ",[57,65,66],{},"shanhu","（云函数运行时间约为 2 秒）。",[47,69,70],{},"根据返回数据判断图片是否通过审核。",[40,72,73],{"id":73},"云函数代码",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-javascript shiki shiki-themes github-light","const cloud = require('wx-server-sdk')\n\ncloud.init()\n\nexports.main = async (event, context) => {\n  const wxContext = cloud.getWXContext()\n  console.log('---' + event.img + '---')\n\n  try {\n    const result = await cloud\n      .openapi({ convertCase: false })\n      .serviceMarket.invokeService({\n        service: 'xxxxxxxxxxxxx',\n        api: 'imgSecCheck',\n        client_msg_id: 'client_msg_id_1',\n        data: {\n          Action: 'ImageModeration',\n          Scenes: ['PORN', 'POLITICS', 'TERRORISM'],\n          ImageUrl: event.img,\n          ImageBase64: '',\n          Config: '',\n          Extra: '',\n        },\n      })\n\n    \u002F\u002F return JSON.parse(result.data).Response.Suggestion\n    return result\n  } catch (err) {\n    return err\n  }\n}\n","javascript","",[57,82,83,114,121,133,138,177,196,224,229,237,254,272,284,296,307,318,324,335,357,363,374,384,394,400,406,411,418,427,439,447,453],{"__ignoreMap":80},[84,85,88,92,96,99,103,107,111],"span",{"class":86,"line":87},"line",1,[84,89,91],{"class":90},"sD7c4","const",[84,93,95],{"class":94},"sYu0t"," cloud",[84,97,98],{"class":90}," =",[84,100,102],{"class":101},"s7eDp"," require",[84,104,106],{"class":105},"sgsFI","(",[84,108,110],{"class":109},"sYBdl","'wx-server-sdk'",[84,112,113],{"class":105},")\n",[84,115,117],{"class":86,"line":116},2,[84,118,120],{"emptyLinePlaceholder":119},true,"\n",[84,122,124,127,130],{"class":86,"line":123},3,[84,125,126],{"class":105},"cloud.",[84,128,129],{"class":101},"init",[84,131,132],{"class":105},"()\n",[84,134,136],{"class":86,"line":135},4,[84,137,120],{"emptyLinePlaceholder":119},[84,139,141,144,147,150,152,155,158,162,165,168,171,174],{"class":86,"line":140},5,[84,142,143],{"class":94},"exports",[84,145,146],{"class":105},".",[84,148,149],{"class":101},"main",[84,151,98],{"class":90},[84,153,154],{"class":90}," async",[84,156,157],{"class":105}," (",[84,159,161],{"class":160},"sqxcx","event",[84,163,164],{"class":105},", ",[84,166,167],{"class":160},"context",[84,169,170],{"class":105},") ",[84,172,173],{"class":90},"=>",[84,175,176],{"class":105}," {\n",[84,178,180,183,186,188,191,194],{"class":86,"line":179},6,[84,181,182],{"class":90},"  const",[84,184,185],{"class":94}," wxContext",[84,187,98],{"class":90},[84,189,190],{"class":105}," cloud.",[84,192,193],{"class":101},"getWXContext",[84,195,132],{"class":105},[84,197,199,202,205,207,210,213,216,219,222],{"class":86,"line":198},7,[84,200,201],{"class":105},"  console.",[84,203,204],{"class":101},"log",[84,206,106],{"class":105},[84,208,209],{"class":109},"'---'",[84,211,212],{"class":90}," +",[84,214,215],{"class":105}," event.img ",[84,217,218],{"class":90},"+",[84,220,221],{"class":109}," '---'",[84,223,113],{"class":105},[84,225,227],{"class":86,"line":226},8,[84,228,120],{"emptyLinePlaceholder":119},[84,230,232,235],{"class":86,"line":231},9,[84,233,234],{"class":90},"  try",[84,236,176],{"class":105},[84,238,240,243,246,248,251],{"class":86,"line":239},10,[84,241,242],{"class":90},"    const",[84,244,245],{"class":94}," result",[84,247,98],{"class":90},[84,249,250],{"class":90}," await",[84,252,253],{"class":105}," cloud\n",[84,255,257,260,263,266,269],{"class":86,"line":256},11,[84,258,259],{"class":105},"      .",[84,261,262],{"class":101},"openapi",[84,264,265],{"class":105},"({ convertCase: ",[84,267,268],{"class":94},"false",[84,270,271],{"class":105}," })\n",[84,273,275,278,281],{"class":86,"line":274},12,[84,276,277],{"class":105},"      .serviceMarket.",[84,279,280],{"class":101},"invokeService",[84,282,283],{"class":105},"({\n",[84,285,287,290,293],{"class":86,"line":286},13,[84,288,289],{"class":105},"        service: ",[84,291,292],{"class":109},"'xxxxxxxxxxxxx'",[84,294,295],{"class":105},",\n",[84,297,299,302,305],{"class":86,"line":298},14,[84,300,301],{"class":105},"        api: ",[84,303,304],{"class":109},"'imgSecCheck'",[84,306,295],{"class":105},[84,308,310,313,316],{"class":86,"line":309},15,[84,311,312],{"class":105},"        client_msg_id: ",[84,314,315],{"class":109},"'client_msg_id_1'",[84,317,295],{"class":105},[84,319,321],{"class":86,"line":320},16,[84,322,323],{"class":105},"        data: {\n",[84,325,327,330,333],{"class":86,"line":326},17,[84,328,329],{"class":105},"          Action: ",[84,331,332],{"class":109},"'ImageModeration'",[84,334,295],{"class":105},[84,336,338,341,344,346,349,351,354],{"class":86,"line":337},18,[84,339,340],{"class":105},"          Scenes: [",[84,342,343],{"class":109},"'PORN'",[84,345,164],{"class":105},[84,347,348],{"class":109},"'POLITICS'",[84,350,164],{"class":105},[84,352,353],{"class":109},"'TERRORISM'",[84,355,356],{"class":105},"],\n",[84,358,360],{"class":86,"line":359},19,[84,361,362],{"class":105},"          ImageUrl: event.img,\n",[84,364,366,369,372],{"class":86,"line":365},20,[84,367,368],{"class":105},"          ImageBase64: ",[84,370,371],{"class":109},"''",[84,373,295],{"class":105},[84,375,377,380,382],{"class":86,"line":376},21,[84,378,379],{"class":105},"          Config: ",[84,381,371],{"class":109},[84,383,295],{"class":105},[84,385,387,390,392],{"class":86,"line":386},22,[84,388,389],{"class":105},"          Extra: ",[84,391,371],{"class":109},[84,393,295],{"class":105},[84,395,397],{"class":86,"line":396},23,[84,398,399],{"class":105},"        },\n",[84,401,403],{"class":86,"line":402},24,[84,404,405],{"class":105},"      })\n",[84,407,409],{"class":86,"line":408},25,[84,410,120],{"emptyLinePlaceholder":119},[84,412,414],{"class":86,"line":413},26,[84,415,417],{"class":416},"sAwPA","    \u002F\u002F return JSON.parse(result.data).Response.Suggestion\n",[84,419,421,424],{"class":86,"line":420},27,[84,422,423],{"class":90},"    return",[84,425,426],{"class":105}," result\n",[84,428,430,433,436],{"class":86,"line":429},28,[84,431,432],{"class":105},"  } ",[84,434,435],{"class":90},"catch",[84,437,438],{"class":105}," (err) {\n",[84,440,442,444],{"class":86,"line":441},29,[84,443,423],{"class":90},[84,445,446],{"class":105}," err\n",[84,448,450],{"class":86,"line":449},30,[84,451,452],{"class":105},"  }\n",[84,454,456],{"class":86,"line":455},31,[84,457,458],{"class":105},"}\n",[13,460,461],{},"需要注意：",[463,464,465,468],"ul",{},[47,466,467],{},"API 对图片大小有限制。",[47,469,470,471,474],{},"约 30% 的请求会返回 ",[57,472,473],{},"res.result.errCode === -604102","，遇到时只能再次调用。",[40,476,477],{"id":477},"记录审核结果",[13,479,480,481,484],{},"可以添加一个 ",[57,482,483],{},"imgCheck"," 集合，统计哪些图片通过了 AI 审核、哪些未通过：",[75,486,491],{"className":487,"code":489,"language":490,"meta":80},[488],"language-text","_id: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\n_openid: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\nimg: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'\nisPass: true\n","text",[57,492,489],{"__ignoreMap":80},[494,495],"hr",{},[497,498,500],"h4",{"id":499},"喜欢或对你有帮助请点个赞吧","喜欢或对你有帮助，请点个赞吧。",[497,502,504],{"id":503},"有错误或者疑问还请评论指出","有错误或者疑问还请评论指出。",[497,506,508,509,26],{"id":507},"我的个人网站-点击访问","我的个人网站 → ",[20,510,25],{"href":511,"rel":512},"https:\u002F\u002Fhongweizhu.com",[24],[494,514],{},[497,516,518],{"id":517},"end","END",[520,521,522],"style",{},"html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sqxcx, html code.shiki .sqxcx{--shiki-default:#E36209}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":80,"searchDepth":116,"depth":116,"links":524},[525,526,527],{"id":42,"depth":116,"text":42},{"id":73,"depth":116,"text":73},{"id":477,"depth":116,"text":477},"微信小程序",null,"https:\u002F\u002Fblog.csdn.net\u002Fu013633921\u002Farticle\u002Fdetails\u002F113473412","2021-01-31","通过云存储、临时文件 URL 和云函数调用珊瑚图片内容安全 API，审核微信小程序用户上传的照片。",false,"md",{},"\u002Fblog\u002Fwechat_mini_program_shanhu_image_content_safety",{"title":5,"description":532},"blog\u002Fwechat_mini_program_shanhu_image_content_safety",[528,540,541,542,543],"云开发","图片审核","内容安全","云函数","2022-04-06","WfGdDIfCvbf7OI0ag5T9aRLReTWtJpW6JBhiIXZbYXY",1785517647099]