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  }