github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/media/news.go (about) 1 package media 2 3 import ( 4 "github.com/chanxuehong/wechat/mp/core" 5 ) 6 7 type Article struct { 8 ThumbMediaId string `json:"thumb_media_id"` // 必须; 图文消息缩略图的 media_id, 可以在上传多媒体文件接口中获得 9 Title string `json:"title"` // 必须; 图文消息的标题 10 Author string `json:"author,omitempty"` // 可选; 图文消息的作者 11 Digest string `json:"digest,omitempty"` // 可选; 图文消息的摘要 12 Content string `json:"content"` // 必须; 图文消息页面的内容, 支持HTML标签 13 ContentSourceURL string `json:"content_source_url,omitempty"` // 可选; 在图文消息页面点击"阅读原文"后的页面 14 ShowCoverPic int `json:"show_cover_pic"` // 可选; 是否显示封面, 1为显示, 0为不显示, 默认为不显示 15 } 16 17 type News struct { 18 Articles []Article `json:"articles,omitempty"` 19 } 20 21 // UploadNews 创建图文消息素材, 返回的素材一般用于群发消息. 22 func UploadNews(clt *core.Client, news *News) (info *MediaInfo, err error) { 23 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/media/uploadnews?access_token=" 24 25 var result struct { 26 core.Error 27 MediaInfo 28 } 29 if err = clt.PostJSON(incompleteURL, news, &result); err != nil { 30 return 31 } 32 if result.ErrCode != core.ErrCodeOK { 33 err = &result.Error 34 return 35 } 36 info = &result.MediaInfo 37 return 38 }