Maison  >  Article  >  Applet WeChat  >  L'applet WeChat appelle l'API de sécurité des images

L'applet WeChat appelle l'API de sécurité des images

hzc
hzcavant
2020-07-01 09:57:322497parcourir

Le mini-programme WeChat a été examiné et rejeté. La raison du rejet était que les images téléchargées par l'utilisateur peuvent avoir des problèmes illégaux ou illégaux et que le programme doit disposer d'un mécanisme d'audit.
La solution est la suivante (développement cloud) :
config.json

{
  "permissions": {
    "openapi": [
      "security.imgSecCheck"
    ]
  }
}

Fonction Cloud

const cloud = require('wx-server-sdk')

cloud.init()
 
exports.main = async (event, context) => {
  const { value } = event;
  try {
    const res = await cloud.openapi.security.imgSecCheck({
      media: {
        header: {
          'Content-Type': 'application/octet-stream'},
        contentType: 'image/png',
        value: Buffer.from(value)
        }
      })
    return res;
  } catch (err) {
    return err;
  }
}

js

ChooseImage() {
    wx.chooseImage({
      count: 1, 
      sizeType: ['original', 'compressed'], 
      sourceType: ['album'], 
      success: (res) => {
        if (res.tempFiles[0] && res.tempFiles[0].size > 1024 * 1024) {
          wx.showToast({
            title: '图片不能大于1M',
            icon: 'none'
          })
          return;
        }
        //校验图片

        wx.getFileSystemManager().readFile({
          filePath: res.tempFilePaths[0],
          success: buffer => {
            console.log(buffer.data)
            wx.cloud.callFunction({
              name: 'checkImg',
              data: {
                value: buffer.data
              }
            }).then(
              imgRes => {
                if (imgRes.result.errCode == '87014') {
                  wx.showToast({
                    title: '图片含有违法违规内容',
                    icon: 'none'
                  })
                  return
                } else {
                  //图片正常

                  if (this.data.imgList.length != 0) {
                    this.setData({
                      imgList: this.data.imgList.concat(res.tempFilePaths)
                    })
                  } else {
                    this.setData({
                      imgList: res.tempFilePaths
                    })
                  }


                }

              }
            )
          },
          fail: err => {
            console.log(err)
          }
        })

      }
    });
  },

Tutoriel recommandé : " Mini-programme WeChat

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer