评论

云函数openapi.security.msgSecCheck异常问题解决

自己做了个日志簿小程序,后端接口完全使用微信云函数,但在开发文字分享评论模块时遇到了问题:文字合规检查api始终掉不通errCode":-501001...

问题:

自己做了个日志簿小程序,后端接口完全使用微信云函数,但在开发文字分享评论模块时遇到了问题:文字合规检查;

调用openapi.security.msgSecCheck异常如下:
{“errCode”:-501001,“errMsg”:"openapi.security.msgSecCheck:fail source.on is not a function; at openapi.security.msgSecCheck api; "}

解决:

因为创建了两个云环境 dev 和 publish
在调用云函数时需要动态切换当前环境如下:

//代码1
cloud.updateConfig({
    env: {
      database: wxContext.ENV,
      storage: wxContext.ENV,
      functions: wxContext.ENV
    }
  })
  
  //代码2
  const db = cloud.database({
    env: wxContext.ENV
  });
  
  //代码3
   let result = await cloud.openapi.security.msgSecCheck({
      content: event.content
    })

这样就可以正常返回result了:
{“errMsg”:“openapi.security.msgSecCheck:ok”,“errCode”:0}

原因:

因为之前少了代码片2;其他接口都加了代码1 代码2;但文本合规检查接口想当然认为与数据库环境无关就删掉了代码2…掉坑了~

补充注意点:

  1. 合规检查正常时返回result,不合规时会走异常catch,而非直接返回到result…O_O ; 自定义示例代码如下,只有code:300时表示文字不合规;仅供参考~

  try {
    console.log('待检测文本:'+event.content);
    let result = await cloud.openapi.security.msgSecCheck({
      content: event.content
    })
    console.log('result:'+JSON.stringify(result));

    if (result && result.errCode.toString() === '87014'){
      return { code: 300, msg: '内容含有违法违规内容', data: result } //
    }else{
      return { code: 200, msg: 'ok', data: result }
    }
   
  } catch (err) {
    if (err.errCode.toString() === '87014'){
       return { code: 300, msg: '内容含有违法违规内容', data: err } //
    }
    return { code: 400, msg: '调用security接口异常', data: err }
  }
}

以上,希望对大家有所帮助~

ps:日志簿项目二期功能正在开发中…一期开发了私密日志功能;放个程序码,希望大家支持!!~
开发交流,共同进步~

最后一次编辑于  08-06  (未经腾讯允许,不得转载)
点赞 0
收藏
评论