1
0
mirror of https://github.com/silenceper/wechat.git synced 2026-02-04 12:52:27 +08:00

feat: 支持企业微信上传临时素材 (#644)

This commit is contained in:
Lien Li
2023-02-06 08:43:41 +08:00
committed by GitHub
parent d1d034eb95
commit ab354c4d03

View File

@@ -9,6 +9,9 @@ import (
const ( const (
// UploadImgURL 上传图片 // UploadImgURL 上传图片
UploadImgURL = "https://qyapi.weixin.qq.com/cgi-bin/media/uploadimg?access_token=%s" UploadImgURL = "https://qyapi.weixin.qq.com/cgi-bin/media/uploadimg?access_token=%s"
// UploadTempFile 上传临时素材
UploadTempFile = "https://qyapi.weixin.qq.com/cgi-bin/media/upload?access_token=%s&type=%s"
) )
// UploadImgResponse 上传图片响应 // UploadImgResponse 上传图片响应
@@ -17,6 +20,14 @@ type UploadImgResponse struct {
URL string `json:"url"` URL string `json:"url"`
} }
// UploadTempFileResponse 上传临时素材响应
type UploadTempFileResponse struct {
util.CommonError
MediaID string `json:"media_id"`
CreateAt string `json:"created_at"`
Type string `json:"type"`
}
// UploadImg 上传图片 // UploadImg 上传图片
// @see https://developer.work.weixin.qq.com/document/path/90256 // @see https://developer.work.weixin.qq.com/document/path/90256
func (r *Client) UploadImg(filename string) (*UploadImgResponse, error) { func (r *Client) UploadImg(filename string) (*UploadImgResponse, error) {
@@ -37,3 +48,25 @@ func (r *Client) UploadImg(filename string) (*UploadImgResponse, error) {
} }
return result, nil return result, nil
} }
// UploadTempFile 上传临时素材
// @see https://developer.work.weixin.qq.com/document/path/90253
// @mediaType 媒体文件类型分别有图片image、语音voice、视频video普通文件file
func (r *Client) UploadTempFile(filename string, mediaType string) (*UploadTempFileResponse, error) {
var (
accessToken string
err error
)
if accessToken, err = r.GetAccessToken(); err != nil {
return nil, err
}
var response []byte
if response, err = util.PostFile("media", filename, fmt.Sprintf(UploadTempFile, accessToken, mediaType)); err != nil {
return nil, err
}
result := &UploadTempFileResponse{}
if err = util.DecodeWithError(response, result, "UploadTempFile"); err != nil {
return nil, err
}
return result, nil
}