content.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package content
  2. import (
  3. "fmt"
  4. "github.com/silenceper/wechat/v2/miniprogram/context"
  5. "github.com/silenceper/wechat/v2/util"
  6. )
  7. const (
  8. checkTextURL = "https://api.weixin.qq.com/wxa/msg_sec_check?access_token=%s"
  9. checkImageURL = "https://api.weixin.qq.com/wxa/img_sec_check?access_token=%s"
  10. )
  11. //Content 内容安全
  12. type Content struct {
  13. *context.Context
  14. }
  15. //NewContent 内容安全接口
  16. func NewContent(ctx *context.Context) *Content {
  17. return &Content{ctx}
  18. }
  19. //CheckText 检测文字
  20. //@text 需要检测的文字
  21. func (content *Content) CheckText(text string) error {
  22. accessToken, err := content.GetAccessToken()
  23. if err != nil {
  24. return err
  25. }
  26. response, err := util.PostJSON(
  27. fmt.Sprintf(checkTextURL, accessToken),
  28. map[string]string{
  29. "content": text,
  30. },
  31. )
  32. if err != nil {
  33. return err
  34. }
  35. return util.DecodeWithCommonError(response, "ContentCheckText")
  36. }
  37. //CheckImage 检测图片
  38. //所传参数为要检测的图片文件的绝对路径,图片格式支持PNG、JPEG、JPG、GIF, 像素不超过 750 x 1334,同时文件大小以不超过 300K 为宜,否则可能报错
  39. //@media 图片文件的绝对路径
  40. func (content *Content) CheckImage(media string) error {
  41. accessToken, err := content.GetAccessToken()
  42. if err != nil {
  43. return err
  44. }
  45. response, err := util.PostFile(
  46. "media",
  47. media,
  48. fmt.Sprintf(checkImageURL, accessToken),
  49. )
  50. if err != nil {
  51. return err
  52. }
  53. return util.DecodeWithCommonError(response, "ContentCheckImage")
  54. }