Documentation ¶
Overview ¶
Package weixin MP SDK (Golang)
Index ¶
- Constants
- type AccessToken
- type Article
- type HandlerFunc
- type Material
- type Materials
- type Menu
- type MenuButton
- type MessageHeader
- type Music
- type QRScene
- type Request
- type ResponseWriter
- type TmplData
- type TmplItem
- type TmplMiniProgram
- type TmplMsg
- type UserAccessToken
- type UserInfo
- type Weixin
- func (wx *Weixin) AddTemplate(shortid string) (string, error)
- func (wx *Weixin) BatchGetMaterial(materialType string, offset int, count int) (*Materials, error)
- func (wx *Weixin) CreateHandlerFunc(w http.ResponseWriter, r *http.Request) http.HandlerFunc
- func (wx *Weixin) CreateMenu(menu *Menu) error
- func (wx *Weixin) CreateQRLimitScene(sceneID int) (*QRScene, error)
- func (wx *Weixin) CreateQRLimitSceneByString(sceneStr string) (*QRScene, error)
- func (wx *Weixin) CreateQRScene(sceneID int, expires int) (*QRScene, error)
- func (wx *Weixin) CreateQRSceneByString(sceneStr string, expires int) (*QRScene, error)
- func (wx *Weixin) CreateRedirectURL(urlStr string, scope string, state string) string
- func (wx *Weixin) DeleteMenu() error
- func (wx *Weixin) DownloadMedia(mediaID string, writer io.Writer) error
- func (wx *Weixin) DownloadMediaToFile(mediaID string, fp string) error
- func (wx *Weixin) GetAccessToken() AccessToken
- func (wx *Weixin) GetAppId() string
- func (wx *Weixin) GetAppSecret() string
- func (wx *Weixin) GetIpList() ([]string, error)
- func (wx *Weixin) GetJsAPITicket() (string, error)
- func (wx *Weixin) GetMenu() (*Menu, error)
- func (wx *Weixin) GetUserAccessToken(code string) (*UserAccessToken, error)
- func (wx *Weixin) GetUserInfo(openid string) (*UserInfo, error)
- func (wx *Weixin) HandleFunc(pattern string, handler HandlerFunc)
- func (wx *Weixin) JsSignature(url string, timestamp int64, noncestr string) (string, error)
- func (wx *Weixin) PostImage(touser string, mediaID string) error
- func (wx *Weixin) PostMusic(touser string, music *Music) error
- func (wx *Weixin) PostNews(touser string, articles []Article) error
- func (wx *Weixin) PostTemplateMessage(touser string, templateid string, url string, data TmplData, ...) (int64, error)
- func (wx *Weixin) PostTemplateMessageMiniProgram(msg *TmplMsg) (int64, error)
- func (wx *Weixin) PostText(touser string, text string) error
- func (wx *Weixin) PostVideo(touser string, m string, t string, d string) error
- func (wx *Weixin) PostVoice(touser string, mediaID string) error
- func (wx *Weixin) RefreshAccessToken()
- func (wx *Weixin) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (wx *Weixin) SetEncodingAESKey(key string) error
- func (wx *Weixin) SetTemplateIndustry(id1 string, id2 string) error
- func (wx *Weixin) ShortURL(url string) (string, error)
- func (wx *Weixin) UploadMedia(mediaType string, filename string, reader io.Reader) (string, error)
- func (wx *Weixin) UploadMediaFromFile(mediaType string, fp string) (string, error)
Constants ¶
const ( EventSubscribe = "subscribe" EventUnsubscribe = "unsubscribe" EventScan = "SCAN" EventView = "VIEW" EventClick = "CLICK" EventLocation = "LOCATION" EventTemplateSent = "TEMPLATESENDJOBFINISH" // Message type MsgTypeDefault = ".*" MsgTypeText = "text" MsgTypeImage = "image" MsgTypeVoice = "voice" MsgTypeVideo = "video" MsgTypeShortVideo = "shortvideo" MsgTypeLocation = "location" MsgTypeLink = "link" MsgTypeEvent = msgEvent + ".*" MsgTypeEventSubscribe = msgEvent + "\\." + EventSubscribe MsgTypeEventUnsubscribe = msgEvent + "\\." + EventUnsubscribe MsgTypeEventScan = msgEvent + "\\." + EventScan MsgTypeEventView = msgEvent + "\\." + EventView MsgTypeEventClick = msgEvent + "\\." + EventClick MsgTypeEventLocation = msgEvent + "\\." + EventLocation MsgTypeEventTemplateSent = msgEvent + "\\." + EventTemplateSent // Media type MediaTypeImage = "image" MediaTypeVoice = "voice" MediaTypeVideo = "video" MediaTypeThumb = "thumb" // Button type MenuButtonTypeKey = "click" MenuButtonTypeUrl = "view" MenuButtonTypeScancodePush = "scancode_push" MenuButtonTypeScancodeWaitmsg = "scancode_waitmsg" MenuButtonTypePicSysphoto = "pic_sysphoto" MenuButtonTypePicPhotoOrAlbum = "pic_photo_or_album" MenuButtonTypePicWeixin = "pic_weixin" MenuButtonTypeLocationSelect = "location_select" MenuButtonTypeMediaId = "media_id" MenuButtonTypeViewLimited = "view_limited" MenuButtonTypeMiniProgram = "miniprogram" // Template Status TemplateSentStatusSuccess = "success" TemplateSentStatusUserBlock = "failed:user block" TemplateSentStatusSystemFailed = "failed:system failed" // Redirect Scope RedirectURLScopeBasic = "snsapi_base" RedirectURLScopeUserInfo = "snsapi_userinfo" )
nolint
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessToken ¶
AccessToken define weixin access token.
type Article ¶
type Article struct { Title string `json:"title"` Description string `json:"description"` PicUrl string `json:"picurl"` // nolint Url string `json:"url"` // nolint }
Article is the response of news message.
type HandlerFunc ¶
type HandlerFunc func(ResponseWriter, *Request)
HandlerFunc is callback function handler
type Material ¶
type Material struct { MediaId string `json:"media_id,omitempty"` // nolint Name string `json:"name,omitempty"` UpdateTime int64 `json:"update_time,omitempty"` CreateTime int64 `json:"create_time,omitempty"` Url string `json:"url,omitempty"` // nolint Content struct { NewsItem []struct { Title string `json:"title,omitempty"` ThumbMediaId string `json:"thumb_media_id,omitempty"` // nolint ShowCoverPic int `json:"show_cover_pic,omitempty"` Author string `json:"author,omitempty"` Digest string `json:"digest,omitempty"` Content string `json:"content,omitempty"` Url string `json:"url,omitempty"` // nolint ContentSourceUrl string `json:"content_source_url,omitempty"` // nolint } `json:"news_item,omitempty"` } `json:"content,omitempty"` }
Material data.
type Materials ¶
type Materials struct { TotalCount int `json:"total_count,omitempty"` ItemCount int `json:"item_count,omitempty"` Items []Material `json:"item,omitempty"` }
Materials is the list of material
type Menu ¶
type Menu struct {
Buttons []MenuButton `json:"button,omitempty"`
}
Menu is custom menu.
type MenuButton ¶
type MenuButton struct { Name string `json:"name"` Type string `json:"type,omitempty"` Key string `json:"key,omitempty"` Url string `json:"url,omitempty"` // nolint MediaId string `json:"media_id,omitempty"` // nolint SubButtons []MenuButton `json:"sub_button,omitempty"` AppId string `json:"appid,omitempty"` // nolint PagePath string `json:"pagepath,omitempty"` }
MenuButton is the button of custom menu.
type MessageHeader ¶
type MessageHeader struct { ToUserName string FromUserName string CreateTime int MsgType string Encrypt string }
MessageHeader is the header of common message.
type Music ¶
type Music struct { Title string `json:"title"` Description string `json:"description"` MusicUrl string `json:"musicurl"` // nolint HQMusicUrl string `json:"hqmusicurl"` // nolint ThumbMediaId string `json:"thumb_media_id"` // nolint }
Music is the response of music message.
type QRScene ¶
type QRScene struct { Ticket string `json:"ticket"` ExpireSeconds int `json:"expire_seconds"` Url string `json:"url,omitempty"` // nolint }
QRScene is the QR code.
type Request ¶
type Request struct { MessageHeader MsgId int64 // nolint Content string PicUrl string // nolint MediaId string // nolint Format string ThumbMediaId string // nolint LocationX float32 `xml:"Location_X"` LocationY float32 `xml:"Location_Y"` Scale float32 Label string Title string Description string Url string // nolint Event string EventKey string Ticket string Latitude float32 Longitude float32 Precision float32 Recognition string Status string }
Request is weixin event request.
type ResponseWriter ¶
type ResponseWriter interface { // Get weixin GetWeixin() *Weixin GetUserData() interface{} ReplyOK() ReplyText(text string) ReplyImage(mediaId string) ReplyVoice(mediaId string) ReplyVideo(mediaId string, title string, description string) ReplyMusic(music *Music) ReplyNews(articles []Article) TransferCustomerService(serviceId string) // Post message PostText(text string) error PostImage(mediaId string) error PostVoice(mediaId string) error PostVideo(mediaId string, title string, description string) error PostMusic(music *Music) error PostNews(articles []Article) error PostTemplateMessage(templateid string, url string, data TmplData, miniprogram TmplMiniProgram) (int64, error) // Media operator UploadMediaFromFile(mediaType string, filepath string) (string, error) DownloadMediaToFile(mediaId string, filepath string) error UploadMedia(mediaType string, filename string, reader io.Reader) (string, error) DownloadMedia(mediaId string, writer io.Writer) error // contains filtered or unexported methods }
ResponseWriter is used to output reply nolint
type TmplItem ¶
type TmplItem struct { Value string `json:"value,omitempty"` Color string `json:"color,omitempty"` }
TmplItem for mini program
type TmplMiniProgram ¶
type TmplMiniProgram struct { AppId string `json:"appid,omitempty"` // nolint PagePath string `json:"pagepath,omitempty"` }
TmplMiniProgram for mini program
type TmplMsg ¶
type TmplMsg struct { ToUser string `json:"touser"` TemplateId string `json:"template_id"` // nolint Url string `json:"url,omitempty"` // nolint 若填写跳转小程序 则此为版本过低的替代跳转url MiniProgram *TmplMiniProgram `json:"miniprogram,omitempty"` // 跳转小程序 选填 Data TmplData `json:"data,omitempty"` Color string `json:"color,omitempty"` // 全局颜色 }
TmplMsg for mini program
type UserAccessToken ¶
type UserAccessToken struct { AccessToken string `json:"access_token"` RefreshToken string `json:"refresh_token"` ExpireSeconds int `json:"expires_in"` OpenId string `json:"openid"` // nolint Scope string `json:"scope"` UnionId string `json:"unionid,omitempty"` // nolint }
UserAccessToken access token for user.
type UserInfo ¶
type UserInfo struct { Subscribe int `json:"subscribe,omitempty"` Language string `json:"language,omitempty"` OpenId string `json:"openid,omitempty"` // nolint UnionId string `json:"unionid,omitempty"` // nolint Nickname string `json:"nickname,omitempty"` Sex int `json:"sex,omitempty"` City string `json:"city,omitempty"` Country string `json:"country,omitempty"` Province string `json:"province,omitempty"` HeadImageUrl string `json:"headimgurl,omitempty"` // nolint SubscribeTime int64 `json:"subscribe_time,omitempty"` Remark string `json:"remark,omitempty"` GroupId int `json:"groupid,omitempty"` // nolint }
UserInfo store user information.
type Weixin ¶
type Weixin struct {
// contains filtered or unexported fields
}
Weixin instance
func NewWithUserData ¶
NewWithUserData create data with userdata.
func (*Weixin) AddTemplate ¶
AddTemplate used to add template.
func (*Weixin) BatchGetMaterial ¶
BatchGetMaterial used to batch get Material.
func (*Weixin) CreateHandlerFunc ¶
func (wx *Weixin) CreateHandlerFunc(w http.ResponseWriter, r *http.Request) http.HandlerFunc
CreateHandlerFunc used to create handler function.
func (*Weixin) CreateMenu ¶
CreateMenu used to create custom menu.
func (*Weixin) CreateQRLimitScene ¶
CreateQRLimitScene used to create QR limit scene.
func (*Weixin) CreateQRLimitSceneByString ¶
CreateQRLimitSceneByString used to create QR limit scene by str.
func (*Weixin) CreateQRScene ¶
CreateQRScene used to create QR scene.
func (*Weixin) CreateQRSceneByString ¶
CreateQRSceneByString used to create QR scene by str.
func (*Weixin) CreateRedirectURL ¶
CreateRedirectURL used to create redirect url
func (*Weixin) DownloadMedia ¶
DownloadMedia used to download media with media.
func (*Weixin) DownloadMediaToFile ¶
DownloadMediaToFile used to download media and save to local file.
func (*Weixin) GetAccessToken ¶
func (wx *Weixin) GetAccessToken() AccessToken
GetAccessToken read access token.
func (*Weixin) GetAppSecret ¶
GetAppSecret return app secret.
func (*Weixin) GetJsAPITicket ¶
GetJsAPITicket used to get js api ticket.
func (*Weixin) GetUserAccessToken ¶
func (wx *Weixin) GetUserAccessToken(code string) (*UserAccessToken, error)
GetUserAccessToken used to get open id
func (*Weixin) GetUserInfo ¶
GetUserInfo used to get user info
func (*Weixin) HandleFunc ¶
func (wx *Weixin) HandleFunc(pattern string, handler HandlerFunc)
HandleFunc used to register request callback.
func (*Weixin) JsSignature ¶
JsSignature used to sign js url.
func (*Weixin) PostTemplateMessage ¶
func (wx *Weixin) PostTemplateMessage(touser string, templateid string, url string, data TmplData, miniprogram TmplMiniProgram) (int64, error)
PostTemplateMessage used to post template message.
func (*Weixin) PostTemplateMessageMiniProgram ¶
PostTemplateMessageMiniProgram 兼容模板消息跳转小程序
func (*Weixin) RefreshAccessToken ¶
func (wx *Weixin) RefreshAccessToken()
RefreshAccessToken update access token.
func (*Weixin) ServeHTTP ¶
func (wx *Weixin) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP used to process weixin request and send response.
func (*Weixin) SetEncodingAESKey ¶
SetEncodingAESKey set AES key
func (*Weixin) SetTemplateIndustry ¶
SetTemplateIndustry used to set template industry.
func (*Weixin) UploadMedia ¶
UploadMedia used to upload media with media.