tt/core/callapi_cdn.go
2024-05-28 08:47:31 +08:00

697 lines
20 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package core
import (
"github.com/goWxHook/goWxHook/utils/json"
)
type CDNInitialResponse struct {
Data CDNInitialResponseData `json:"data"`
Type int `json:"type"`
}
type CDNInitialResponseData struct {
Status int `json:"status"`
}
// InitialCDN CDN初始化
func (w *WxApi) InitialCDN() (*CDNInitialResponseData, error) {
resp, err := w.internalCall(MtCdnInitialMsg, 30, MtCdnInitialMsg, map[string]interface{}{}, nil)
if err != nil {
return nil, err
}
var rdata CDNInitialResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNUploadRequest struct {
FileType int `json:"file_type"`
FilePath string `json:"file_path"`
}
type CDNUploadResponseData struct {
AesKey string `json:"aes_key"`
Crc32 int64 `json:"crc32"`
ErrorCode int `json:"error_code"`
FileId string `json:"file_id"`
FileKey string `json:"file_key"`
FileMd5 string `json:"file_md5"`
FilePath string `json:"file_path"`
FileSize int `json:"file_size"`
ThumbFileMd5 string `json:"thumb_file_md5"`
ThumbFileSize int `json:"thumb_file_size"`
}
type CDNUploadResponse struct {
Data CDNUploadResponseData `json:"data"`
Type int `json:"type"`
}
// CDNUpload CDN上传
func (w *WxApi) CDNUpload(request CDNUploadRequest) (*CDNUploadResponseData, error) {
resp, err := w.internalCall(MtCdnUploadFileMsg, 600, MtCdnUploadFileMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNUploadResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNDownloadRequest struct {
FileId string `json:"file_id"`
FileType int `json:"file_type"`
AesKey string `json:"aes_key"`
SavePath string `json:"save_path"`
}
type CDNDownloadResponseData struct {
ErrorCode int `json:"error_code"`
FileId string `json:"file_id"`
FileSize int `json:"file_size"`
SavePath string `json:"save_path"`
}
type CDNDownloadResponse struct {
Data CDNDownloadResponseData `json:"data"`
Type int `json:"type"`
}
// CDNDownload CDN下载
func (w *WxApi) CDNDownload(request CDNDownloadRequest) (*CDNDownloadResponseData, error) {
resp, err := w.internalCall(MtCdnDownloadFileMsg, 600, MtCdnDownloadFileMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNDownloadResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type WorkWxCdnDownloadRequest struct {
Url string `json:"url"`
AuthKey string `json:"auth_key"`
AesKey string `json:"aes_key"`
SavePath string `json:"save_path"`
}
type WorkWxCdnDownloadResponseData struct {
ErrorCode int `json:"error_code"`
SavePath string `json:"save_path"`
}
type WorkWxCdnDownloadResponse struct {
Data WorkWxCdnDownloadResponseData `json:"data"`
Type int `json:"type"`
}
// WorkWxCdnDownload 企业微信CDN
func (w *WxApi) WorkWxCdnDownload(request WorkWxCdnDownloadRequest) (*WorkWxCdnDownloadResponseData, error) {
resp, err := w.internalCall(MtWorkWxCdnDownloadMsg, 600, MtWorkWxCdnDownloadMsg, request, nil)
if err != nil {
return nil, err
}
var rdata WorkWxCdnDownloadResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendTextMsgRequest struct {
ToWxid string `json:"to_wxid"`
Content string `json:"content"`
AtList []string `json:"at_list"` // 群消息时候使用
AtAll int `json:"at_all"` // 群消息时候1是at所有人
}
type CDNSendTextMsgResponseData struct {
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
Count int `json:"count"`
MsgResponseList []struct {
ClientMsgId int `json:"clientMsgId"`
CreateTime int `json:"createTime"`
MsgId int `json:"msgId"`
NewMsgId string `json:"newMsgId"`
Ret int `json:"ret"`
ServerTime int `json:"serverTime"`
ToUserName struct {
String string `json:"string"`
} `json:"toUserName"`
Type int `json:"type"`
} `json:"msgResponseList"`
}
type CDNSendTextMsgResponse struct {
Data CDNSendTextMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendTextMsg 发送文本消息
func (w *WxApi) CDNSendTextMsg(request CDNSendTextMsgRequest) (*CDNSendTextMsgResponseData, error) {
var (
resp string
err error
)
if len(request.AtList) > 0 || request.AtAll == 1 {
resp, err = w.internalCall(MtCdnSendAtTextMsg, 30, MtCdnSendAtTextMsg, request, nil)
if err != nil {
return nil, err
}
} else {
resp, err = w.internalCall(MtCdnSendTextMsg, 30, MtCdnSendTextMsg, request, nil)
if err != nil {
return nil, err
}
}
var rdata CDNSendTextMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendImageMsgRequest struct {
AesKey string `json:"aes_key"`
FileId string `json:"file_id"`
FileMd5 string `json:"file_md5"`
FileSize int `json:"file_size"`
ThumbFileSize int `json:"thumb_file_size"`
Crc32 int `json:"crc32"`
ToWxid string `json:"to_wxid"`
}
type CDNSendImageMsgResponseData struct {
AesKey string `json:"aes_key"`
FileId string `json:"file_id"`
FileMd5 string `json:"file_md5"`
FileSize int `json:"file_size"`
ThumbFileSize int `json:"thumb_file_size"`
Crc32 int `json:"crc32"`
ToWxid string `json:"to_wxid"`
}
type CDNSendImageMsgResponse struct {
Data CDNSendImageMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendImageMsg 发送图片
func (w *WxApi) CDNSendImageMsg(request CDNSendImageMsgRequest) (*CDNSendImageMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendImageMsg, 120, MtCdnSendImageMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendImageMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendVideoMsgRequest struct {
AesKey string `json:"aes_key"`
FileId string `json:"file_id"`
FileMd5 string `json:"file_md5"`
FileSize int `json:"file_size"`
ThumbFileSize int `json:"thumb_file_size"`
ToWxid string `json:"to_wxid"`
}
type CDNSendVideoMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
RawAeskey string `json:"rawAeskey"`
RawVideoNeedReupload bool `json:"rawVideoNeedReupload"`
ThumbStartPos int `json:"thumbStartPos"`
VideoNeedReupload bool `json:"videoNeedReupload"`
VideoStartPos int `json:"videoStartPos"`
}
type CDNSendVideoMsgResponse struct {
Data CDNSendVideoMsgResponseData `json:"data"`
Type int `json:"type"`
}
func (w *WxApi) CDNSendVideoMsg(request CDNSendVideoMsgRequest) (*CDNSendVideoMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendVideoMsg, 120, MtCdnSendVideoMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendVideoMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendFileMsgRequest struct {
AesKey string `json:"aes_key"`
FileId string `json:"file_id"`
FileMd5 string `json:"file_md5"`
FileName string `json:"file_name"`
FileSize int `json:"file_size"`
ToWxid string `json:"to_wxid"`
}
type CDNSendFileMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
AppId string `json:"appId"`
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
CreateTime int `json:"createTime"`
FromUserName string `json:"fromUserName"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
ToUserName string `json:"toUserName"`
Type int `json:"type"`
}
type CDNSendFileMsgResponse struct {
Data CDNSendFileMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendFileMsg 发送文件
func (w *WxApi) CDNSendFileMsg(request CDNSendFileMsgRequest) (*CDNSendFileMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendFileMsg, 120, MtCdnSendFileMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendFileMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendCardLinkMsgRequest struct {
ToWxid string `json:"to_wxid"`
Title string `json:"title"`
Desc string `json:"desc"`
Url string `json:"url"`
ImageUrl string `json:"image_url"`
}
type CDNSendCardLinkMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
AppId string `json:"appId"`
BaseResponse struct {
ErrMsg struct {
} `json:"errMsg"`
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
CreateTime int `json:"createTime"`
FromUserName string `json:"fromUserName"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
ToUserName string `json:"toUserName"`
Type int `json:"type"`
}
type CDNSendCardLinkMsgResponse struct {
Data CDNSendCardLinkMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendCardLinkMsg 发送链接卡片
func (w *WxApi) CDNSendCardLinkMsg(request CDNSendCardLinkMsgRequest) (*CDNSendCardLinkMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendCardLinkMsg, 120, MtCdnSendCardLinkMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendCardLinkMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendGifMsgRequest struct {
AesKey string `json:"aes_key"`
FileId string `json:"file_id"`
FileMd5 string `json:"file_md5"`
FileSize int `json:"file_size"`
ToWxid string `json:"to_wxid"`
}
type CDNSendGifMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
AppId string `json:"appId"`
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
CreateTime int `json:"createTime"`
FromUserName string `json:"fromUserName"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
ToUserName string `json:"toUserName"`
Type int `json:"type"`
}
type CDNSendGifMsgResponse struct {
Data CDNSendGifMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendGifMsg 发送动图
func (w *WxApi) CDNSendGifMsg(request CDNSendGifMsgRequest) (*CDNSendGifMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendGifMsg, 120, MtCdnSendGifMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendGifMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendMiniProgramMsgRequest struct {
ToWxid string `json:"to_wxid"`
Username string `json:"username"`
Appid string `json:"appid"`
Appname string `json:"appname"`
Appicon string `json:"appicon"`
Title string `json:"title"`
PagePath string `json:"page_path"`
FileId string `json:"file_id"`
AesKey string `json:"aes_key"`
FileMd5 string `json:"file_md5"`
FileSize int `json:"file_size"`
}
type CDNSendMiniProgramMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
AppId string `json:"appId"`
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
CreateTime int `json:"createTime"`
FromUserName string `json:"fromUserName"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
ToUserName string `json:"toUserName"`
Type int `json:"type"`
}
type CDNSendMiniProgramMsgResponse struct {
Data CDNSendMiniProgramMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendMiniProgramMsg 发送小程序
func (w *WxApi) CDNSendMiniProgramMsg(request CDNSendMiniProgramMsgRequest) (*CDNSendMiniProgramMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendMiniProgramMsg, 120, MtCdnSendMiniProgramMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendMiniProgramMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendVideoMomentMsgRequest struct {
ToWxid string `json:"to_wxid"`
ObjectId string `json:"object_id"`
ObjectNonceId string `json:"object_nonce_id"`
Nickname string `json:"nickname"`
Username string `json:"username"`
Avatar string `json:"avatar"`
Desc string `json:"desc"`
ThumbUrl string `json:"thumb_url"`
Url string `json:"url"`
}
type CDNSendVideoMomentMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
AppId string `json:"appId"`
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
CreateTime int `json:"createTime"`
FromUserName string `json:"fromUserName"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
ToUserName string `json:"toUserName"`
Type int `json:"type"`
}
type CDNSendVideoMomentMsgResponse struct {
Data CDNSendVideoMomentMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendVideoMomentMsg 发送视频号
func (w *WxApi) CDNSendVideoMomentMsg(request CDNSendVideoMomentMsgRequest) (*CDNSendVideoMomentMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendVideoMomentMsg, 120, MtCdnSendVideoMomentMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendVideoMomentMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendCardMsgRequest struct {
ToWxid string `json:"to_wxid"`
Username string `json:"username"`
Nickname string `json:"nickname"`
Avatar string `json:"avatar"`
}
type CDNSendCardMsgResponseData struct {
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
Count int `json:"count"`
MsgResponseList []struct {
ClientMsgId int `json:"clientMsgId"`
CreateTime int `json:"createTime"`
MsgId int `json:"msgId"`
NewMsgId string `json:"newMsgId"`
Ret int `json:"ret"`
ServerTime int `json:"serverTime"`
ToUserName struct {
String string `json:"string"`
} `json:"toUserName"`
Type int `json:"type"`
} `json:"msgResponseList"`
}
type CDNSendCardMsgResponse struct {
Data CDNSendCardMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendCardMsg 发送名片
func (w *WxApi) CDNSendCardMsg(request CDNSendCardMsgRequest) (*CDNSendCardMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendCardMsg, 120, MtCdnSendCardMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendCardMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendLocationMsgRequest struct {
ToWxid string `json:"to_wxid"`
Address string `json:"address"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
Title string `json:"title"`
}
type CDNSendLocationMsgResponseData struct {
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
Count int `json:"count"`
MsgResponseList []struct {
ClientMsgId int `json:"clientMsgId"`
CreateTime int `json:"createTime"`
MsgId int `json:"msgId"`
NewMsgId string `json:"newMsgId"`
Ret int `json:"ret"`
ServerTime int `json:"serverTime"`
ToUserName struct {
String string `json:"string"`
} `json:"toUserName"`
Type int `json:"type"`
} `json:"msgResponseList"`
}
type CDNSendLocationMsgResponse struct {
Data CDNSendLocationMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendLocationMsg 发送位置
func (w *WxApi) CDNSendLocationMsg(request CDNSendLocationMsgRequest) (*CDNSendLocationMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendLocationMsg, 120, MtCdnSendLocationMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendLocationMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendRevokeMsgRequest struct {
ClientMsgid interface{} `json:"client_msgid"`
CreateTime int `json:"create_time"`
ToWxid string `json:"to_wxid"`
NewMsgid string `json:"new_msgid"`
}
type CDNSendRevokeMsgResponseData struct {
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
Introduction string `json:"introduction"`
SysWording string `json:"sysWording"`
}
type CDNSendRevokeMsgResponse struct {
Data CDNSendRevokeMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendRevokeMsg 撤回消息
func (w *WxApi) CDNSendRevokeMsg(request CDNSendRevokeMsgRequest) (*CDNSendRevokeMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendRevokeMsg, 120, MtCdnSendRevokeMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendRevokeMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendXmlMsgRequest struct {
// "<appmsg appid=\"wx6618f1cfc6c132f8\" sdkver=\"0\"><title>1658934822522.gif<... ...</weappinfo><websearch /></appmsg>",
Content string `json:"content"`
ToWxid string `json:"to_wxid"`
}
type CDNSendXmlMsgResponseData struct {
ActionFlag int `json:"actionFlag"`
Aeskey string `json:"aeskey"`
AppId string `json:"appId"`
BaseResponse struct {
Ret int `json:"ret"`
} `json:"baseResponse"`
ClientMsgId string `json:"clientMsgId"`
CreateTime int `json:"createTime"`
FromUserName string `json:"fromUserName"`
MsgId int `json:"msgId"`
MsgSource string `json:"msgSource"`
NewMsgId string `json:"newMsgId"`
ToUserName string `json:"toUserName"`
Type int `json:"type"`
}
type CDNSendXmlMsgResponse struct {
Data CDNSendXmlMsgResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendXmlMsg 发送xml消息
func (w *WxApi) CDNSendXmlMsg(request CDNSendXmlMsgRequest) (*CDNSendXmlMsgResponseData, error) {
resp, err := w.internalCall(MtCdnSendXmlMsg, 120, MtCdnSendXmlMsg, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendXmlMsgResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}
type CDNSendGifMsgNewRequest struct {
Path string `json:"path"`
ToWxid string `json:"to_wxid"`
}
type CDNSendGifMsgNewResponseData struct {
Md5 string `json:"md5"`
Size int `json:"size"`
ToWxid string `json:"to_wxid"`
}
type CDNSendGifMsgNewResponse struct {
Data CDNSendGifMsgNewResponseData `json:"data"`
Type int `json:"type"`
}
// CDNSendGifMsgNew 发送动图
func (w *WxApi) CDNSendGifMsgNew(request CDNSendGifMsgNewRequest) (*CDNSendGifMsgNewResponseData, error) {
resp, err := w.internalCall(MtCdnSendGifMsgNew, 120, MtCdnSendGifMsgNew, request, nil)
if err != nil {
return nil, err
}
var rdata CDNSendGifMsgNewResponse
err = json.Unmarshal([]byte(resp), &rdata)
if err != nil {
return nil, WxError{-1, err.Error()}
}
return &rdata.Data, nil
}