(Translated by https://www.hiragana.jp/)
GitHub - esap/wechat: 微信SDK的golang实现,短小精悍,同时兼容【企业号/服务号/订阅号/小程序】
Skip to content
/ wechat Public

ほろしんSDKてきgolang实现,短小たんしょう精悍せいかんどう时兼ようくわだて业号/ふく务号/订阅ごう/しょうほどじょ

License

Notifications You must be signed in to change notification settings

esap/wechat

Repository files navigation

WeChat SDK

Build Status Go Report Card GoDoc

ほろしんSDKてきgolang实现,短小たんしょう精悍せいかんどう时兼ようくわだて业微しん/ふく务号/订阅ごう/しょうほどじょ

快速かいそく开始

5ぎょうだい码,链式消息しょうそく快速かいそく开启ほろしんAPIしめせれい:

package main

import (
	"net/http"

	"github.com/esap/wechat" // ほろしんSDKつつみ
)

func main() {
	wechat.Debug = true
	
	cfg := &wechat.WxConfig{
		Token:          "yourToken",
		AppId:          "yourAppID",
		Secret:         "yourSecret",
		EncodingAESKey: "yourEncodingAesKey",
	}

	app := wechat.New(cfg)
	app.SendText("@all", "Hello,World!")
	
	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		app.VerifyURL(w, r).NewText("きゃくふく消息しょうそく1").Send().NewText("きゃくふく消息しょうそく2").Send().NewText("查询OK").Reply()
	})
	
	http.ListenAndServe(":9090", nil)
}

配置はいち方式ほうしき

	// 创建こう众号实例(ふく务号/订阅ごう/しょうほどじょ) 带aesKey则为明文めいぶんしき
	cfg := &wechat.WxConfig{
		Token:          "yourToken",
		AppId:          "yourAppID",
		Secret:         "yourSecret",
	}

	// 创建こう众号实例(ふく务号/订阅ごう/しょうほどじょ)
	cfg := &wechat.WxConfig{
		Token:          "yourToken",
		AppId:          "yourAppID",
		Secret:         "yourSecret",
		EncodingAESKey: "yourEncodingAesKey",
	}

	// 创建くわだて业微しん实例
	cfg := &wechat.WxConfig{
		Token:          "yourToken",
		AppId:          "yourCorpID",
		AgentId:        "yourAgentId",
		Secret:         "yourSecret",
		EncodingAESKey: "yourEncodingAesKey",
		AppType:        1,
	}

しゅ动推送消息しょうそく

よう户关ちゅうきさきくわだて业微しんじ以主动推送消息しょうそくふく务号需要じゅようよう户48しょう时内进入过。

	app.SendText(to, msg)
	app.SendImage(to, mediaId)
	app.SendVoice(to, mediaId)
	app.SendFile(to, mediaId)
	app.SendVideo(to, mediaId, title, desc)
	app.SendTextcard(to, title, desc, url)
	app.SendMusic(to, mediaId, title, desc, musicUrl, qhMusicUrl)
	app.SendNews(to, arts...)
	app.SendMpNews(to, arts...)
	app.SendMpNewsId(to, mediaId)
	app.SendMarkDown(to, content)

消息しょうそくかい

  • 通常つうじょうしょうapp.VerifyURL(http.ResponseWriter, *http.Request)嵌入かんにゅうhttp handler

该函すうかえしかい*wechat.Context基本きほん对象,其中てきMsg为用户消いき

	// 混合こんごうよう户消いき,业务判断はんだんてき主体しゅたい
	WxMsg struct {
		XMLName      xml.Name `xml:"xml"`
		ToUserName  
		FromUserName
		CreateTime  64
		MsgId       64
		MsgType     
		Content       // text
		AgentID          // corp
		PicUrl        // image
		MediaId       // image/voice/video/shortvideo
		Format        // voice
		Recognition   // voice
		ThumbMediaId  // video
		LocationX    float32 `xml:"Latitude"`  // location
		LocationY    float32 `xml:"Longitude"` // location
		Precision    float32 // LOCATION
		Scale            // location
		Label         // location
		Title         // link
		Description   // link
		Url           // link
		Event         // event
		EventKey      // event
		SessionFrom   // event|user_enter_tempsession
		Ticket      
		FileKey     
		FileMd5     
		FileTotalLen

		ScanCodeInfo struct {
			ScanType  
			ScanResult
		}
	}
  • 如果使用しよう其他webかまちれい如echo/gin/beegoとう,则把VerifyURL()にゅうcontrollerあるhandler
// echoしめせれい こう众号かい调接こう
func wxApiPost(c echo.Context) error {
	ctx := app.VerifyURL(c.Response().Writer, c.Request())
	
	// TODO: 这里其他业务操作そうさ

	return nil
}

かい调回复消いき

かい调回复消いきゆう两种方式ほうしき

  • 动回复,さいようXML格式かくしき编码かえしかい(Reply);

  • きゃくふく消息しょうそくさいようjson格式かくしき编码かえしかい(Send);

  • 两种方式ほうしきさき调用*wechat.Context对象てきNew方法ほうほう创建消息しょうそくしかきさき调用Reply()あるSend()。

  • 支持しじ链式调用,ただしReply()ただゆうだいいち有效ゆうこう

	ctx.NewText("ただしざい查询ちゅう...").Reply()
	ctx.NewText("きゃくふく消息しょうそく1").Send().NewText("きゃくふく消息しょうそく2").Send()
  • 动回复可直接ちょくせつ调用Reply(),表示ひょうじやめおさむいたしかきさき调用きゃくふく消息しょうそく

ぶんほん消息しょうそく

	ctx.NewText("content")

图片/语言/ぶんけん消息しょうそく

	// mediaID どおり素材そざい管理かんり-上上じょうじょう传多媒体ばいたいぶんけん获得
	ctx.NewImage("mediaID")
	ctx.NewVoice("mediaID")
	
	// 仅企业号支持しじ
	ctx.NewFile("mediaID")

视频消息しょうそく

	ctx.NewVideo("mediaID", "title", "description")

おと乐消いき

	ctx.NewMusic("thumbMediaID","title", "description", "musicURL", "hqMusicURL")

图文消息しょうそく

	// さき创建さん文章ぶんしょう
	art1 := wechat.NewArticle("拥抱AI,享受きょうじゅ工作こうさく",
		"らいむら长的ESAPけい最新さいしんわざ术分とおる",
		"http://ylin.wang/img/esap18-1.png",
		"http://ylin.wang/2017/07/13/esap18/")
	art2 := wechat.NewArticle("ようくわだて业微しん代替だいたいpda实现扫描にゅう库",
		"らいむら长的ESAPけい最新さいしんわざ术分とおる",
		"http://ylin.wang/img/esap17-2.png",
		"http://ylin.wang/2017/06/23/esap17/")
	art3 := wechat.NewArticle("大道おおみちいたる简的哲学てつがく",
		"らいむら长的工作こうさくこころざし",
		"http://ylin.wang/img/golang.jpg",
		"http://ylin.wang/2017/01/29/log7/")
	// つつみなりしん
	ctx.NewNews(art1, art2, art3)

ばん消息しょうそく

あい关issue

	tlpdata := map[string]struct {
		Value `json:"value"`
		Color `json:"color"`
	}{
		"first": {Value: "わが渣渣涛", Color: "#173177"},
		"keyword1": {Value: "这是一个你从没有玩过的全新游戏", Color: "#173177"},
		"keyword2": {Value: "ただよう你跟わが一起かずき试玩いち", Color: "#173177"},
		"keyword3": {Value: "你就かい爱上这款ゆう戏", Color: "#4B1515"},
		"remark":   {Value: "兄弟きょうだい就来砍我", Color: "#071D42"},
	}
	ctx.SendTemplate(
		ctx.Msg.FromUserName,
		"tempid", // ばんID
		c.Request.Host, // とべ转url
		ctx.AppId, // とべ转小ほどじょurl优先
		"", // しょうほどじょ页面
		tlpdata,
	)

License

MIT

About

ほろしんSDKてきgolang实现,短小たんしょう精悍せいかんどう时兼ようくわだて业号/ふく务号/订阅ごう/しょうほどじょ

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages