内容安全接口-604101或者invalid openid#812
cloud1-4g4rtmft34cd11a9
// 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const { type, // 检测类型:text(文本), image(图片) content, // 文本内容(type为text时必需) fileID, // 图片fileID(type为image时必需) scene = 1 // 场景值:1-社交日记;3-社交论坛;4-社交私聊 } = event try { if (type === 'text') { // 文本内容安全检测 if (!content) { return { success: false, error: '缺少检测内容' } } const openid = wxContext.OPENID try { const result = await cloud.openapi.security.msgSecCheck({ openid, scene, version: 2, content: content }) // result.result.suggest: pass(通过), review(需人工审核), risky(不适合展示) // result.result.label: 100-正常;10001-广告;20001-时政;20002-色情;20003-辱骂;20006-违法犯罪;20008-欺诈;20012-低俗;20013-版权;21000-其他 const isPass = result.result.suggest === 'pass' return { success: true, isPass, suggest: result.result.suggest, label: result.result.label, detail: result.result, ...(isPass ? {} : { errorType: 'content_violation', error: '存在不适合展示信息' }) } } catch (err) { // 服务不可用时直接返回微信接口的原始错误信息 const rawError = err.errMsg || err.message || (err.errCode != null ? `errCode: ${err.errCode}, ${err.errMsg || ''}`.trim() : String(err)) return { success: true, isPass: false, suggest: 'risky', errorType: 'service_unavailable', error: rawError, errCode: err.errCode, errMsg: err.errMsg } } } else if (type === 'image') { // 图片内容安全检测 if (!fileID) { return { success: false, error: '缺少图片文件ID' } } try { // 下载图片 const downloadResult = await cloud.downloadFile({ fileID }) // 检测图片 const result = await cloud.openapi.security.imgSecCheck({ media: { contentType: 'image/jpeg', value: downloadResult.fileContent } }) // errCode: 0-通过;87014-不适合展示 const isPass = result.errCode === 0 return { success: true, isPass, errCode: result.errCode, errMsg: result.errMsg, detail: result, ...(isPass ? {} : { errorType: 'content_violation', error: '存在不适合展示信息' }) } } catch (err) { // 如果检测接口调用失败 // 如果是87014错误码,说明图片不适合展示 if (err.errCode === 87014) { return { success: true, isPass: false, errCode: err.errCode, errMsg: '图片内容不适合展示', errorType: 'content_violation', error: '存在不适合展示信息' } } // 其他错误:服务不可用时直接返回微信接口的原始错误信息 const rawError = err.errMsg || err.message || (err.errCode != null ? `errCode: ${err.errCode}, ${err.errMsg || ''}`.trim() : String(err)) return { success: true, isPass: false, errorType: 'service_unavailable', error: rawError, errCode: err.errCode, errMsg: err.errMsg } } } else { return { success: false, error: '无效的检测类型' } } } catch (err) { return { success: false, error: err.message || '安全检测失败' } } }
{ "permissions": { "openapi": ["security.msgSecCheck", "security.imgSecCheck"] } }
在开发者工具显示-604101,在真机上显示 invalid openid
经排查,cloud.getWXContext()不返回OPENID,疑似出现在云函数调用云函数或者别的什么情况,只返回 APPID SOURCE和ENV
https://developers.weixin.qq.com/community/develop/article/doc/000460c053c9504ffb6fb5f885b013
根据第一个评论云函数调用云函数不走网关所以无法获取用户信息……
小T
云开发环境ID
cloud1-4g4rtmft34cd11a9
问题描述
在开发者工具显示-604101,在真机上显示 invalid openid