微信公眾平臺SDK for Go

jopen 10年前發布 | 62K 次閱讀 微信 Google Go/Golang開發

這是一個使用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.MediaTypeImageweixinmp.MediaTypeVoiceweixinmp.MediaTypeVideoweixinmp.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類型值

相關鏈接

微信公眾平臺

微信公眾平臺開發者文檔

微信公眾平臺接口調試工具

微信公眾平臺接口測試帳號申請


項目主頁:http://www.baiduhome.net/lib/view/home/1395632257384

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!