微信公众平台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
类型值