content.go 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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. // Deprecated
  22. // 采用 security.MsgCheckV1 替代,返回值更加丰富
  23. func (content *Content) CheckText(text string) error {
  24. accessToken, err := content.GetAccessToken()
  25. if err != nil {
  26. return err
  27. }
  28. response, err := util.PostJSON(
  29. fmt.Sprintf(checkTextURL, accessToken),
  30. map[string]string{
  31. "content": text,
  32. },
  33. )
  34. if err != nil {
  35. return err
  36. }
  37. return util.DecodeWithCommonError(response, "ContentCheckText")
  38. }
  39. // CheckImage 检测图片
  40. // 所传参数为要检测的图片文件的绝对路径,图片格式支持PNG、JPEG、JPG、GIF, 像素不超过 750 x 1334,同时文件大小以不超过 300K 为宜,否则可能报错
  41. // @media 图片文件的绝对路径
  42. // Deprecated
  43. // 采用 security.ImageCheckV1 替代,返回值更加丰富
  44. func (content *Content) CheckImage(media string) error {
  45. accessToken, err := content.GetAccessToken()
  46. if err != nil {
  47. return err
  48. }
  49. response, err := util.PostFile(
  50. "media",
  51. media,
  52. fmt.Sprintf(checkImageURL, accessToken),
  53. )
  54. if err != nil {
  55. return err
  56. }
  57. return util.DecodeWithCommonError(response, "ContentCheckImage")
  58. }