微信公眾平臺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類型值