微信公眾平臺SDK for Go
這是一個使用Go語言編寫的微信公眾平臺開發接口封裝包.
Hello, 世界
獲取weixinmp
包
go get github.com/sidbusy/weixinmp
創建server.go
package main import ( "net/http" "github.com/sidbusy/weixinmp" ) func main() { // 注冊處理函數 http.HandleFunc("/receiver", receiver) http.ListenAndServe(":80", nil) } func receiver(w http.ResponseWriter, r *http.Request) { token := "" // 微信公眾平臺的Token appid := "" // 微信公眾平臺的AppID secret := "" // 微信公眾平臺的AppSecret // 僅被動響應消息時可不填寫appid、secret // 僅主動發送消息時可不填寫token mp := weixinmp.New(token, appid, secret) // 檢查請求是否有效 // 僅主動發送消息時不用檢查 if !mp.Request.IsValid(w, r) { return } // 判斷消息類型 if mp.Request.MsgType == weixinmp.MsgTypeText { // 回復消息 mp.ReplyTextMsg(w, "Hello, 世界") } }
運行監聽服務
go run server.go
客戶端消息類型
weixinmp.MsgTypeText
文本消息
weixinmp.MsgTypeImage
圖片消息
weixinmp.MsgTypeVoice
語音消息
weixinmp.MsgTypeVideo
視頻消息
weixinmp.MsgTypeLocation
地理位置消息
weixinmp.MsgTypeLink
鏈接消息
weixinmp.MsgTypeEvent
事件推送
weixinmp.EventSubscribe
關注/用戶未關注時掃描帶參數二維碼事件
weixinmp.EventUnsubscribe
取消關注事件
weixinmp.EventScan
用戶已關注時掃描帶參數二維碼事件
weixinmp.EventLocation
上報地理位置事件
weixinmp.EventClick
菜單拉取消息事件
weixinmp.EventView
菜單跳轉鏈接事件
回復消息
mp.ReplyTextMsg(w, "content")
回復文本消息
mp.ReplyImageMsg(w, mediaId)
回復圖片消息
mp.ReplyVoiceMsg(w, mediaId)
回復語音消息
mp.ReplyVideoMsg(w, &weixinmp.Video)
回復視頻消息
mp.ReplyMusicMsg(w, &weixinmp.Music)
回復音樂消息
mp.ReplyNewsMsg(w, &[]weixinmp.Article)
回復圖文消息
mediaId
媒體文件上傳后獲取的唯一標識
返回error
類型值
發送消息
mp.SendTextMsg(touser, "content")
發送文本消息
mp.SendImageMsg(touser, mediaId)
發送圖片消息
mp.SendVoiceMsg(touser, mediaId)
發送語音消息
mp.SendVideoMsg(touser, &weixinmp.Video)
發送視頻消息
mp.SendMusicMsg(touser, &weixinmp.Music)
發送音樂消息
mp.SendNewsMsg(touser, &[]weixinmp.Article)
發送圖文消息
touser
普通用戶openid
mediaId
媒體文件上傳后獲取的唯一標識
返回error
類型值
視頻、音樂、圖文消息結構
視頻消息
type Video struct { MediaId string Title string Description string }
音樂消息
type Music struct { Title string Description string MediaId string MusicUrl string HQMusicUrl string ThumbMediaId string }
圖文消息
type Article struct { Title string Description string PicUrl string Url string }
上傳多媒體文件
mp.UploadMediaFile(mediaType, filePath)
上傳多媒體文件
mediaType
多媒體文件類型(weixinmp.MediaTypeImage
、weixinmp.MediaTypeVoice
、weixinmp.MediaTypeVideo
、weixinmp.MediaTypeThumb
)
filePath
多媒體文件路徑
返回(string, error)
類型值, 返回的string類型值為媒體文件上傳后獲取的唯一標識.
下載多媒體文件
mp.DownloadMediaFile(mediaId, filePath)
下載多媒體文件
mediaId
媒體文件上傳后獲取的唯一標識
返回error
類型值
創建二維碼
mp.CreateQRScene(sceneId)
創建臨時二維碼
mp.CreateQRLimitScene(expireSeconds, sceneId)
創建永久二維碼
expireSeconds
臨時二維碼有效時間, 以秒為單位, 最大不超過1800.
sceneId
場景值ID, 臨時二維碼時為32位非0整型, 永久二維碼時最大值為100000 ( 目前參數只支持1-100000 ).
返回(string, error)
類型值, 返回的string類型值為獲取的二維碼ticket, 憑借此ticket可以在有效時間內換取二維碼.
換取二維碼URL
mp.GetQRCodeURL(ticket)
返回string
類型值