WeChat SDK for Go

使用Golang开发的微信SDK,简单、易用。

项目地址:https://github.com/silenceper/wechat

文档地址:DOCS

快速开始

以下是一个处理消息接收以及回复的例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//配置微信参数
config := &wechat.Config{
AppID: "xxxx",
AppSecret: "xxxx",
Token: "xxxx",
EncodingAESKey: "xxxx",
Cache: memCache
}
wc := wechat.NewWechat(config)
// 传入request和responseWriter
server := wc.GetServer(request, responseWriter)
server.SetMessageHandler(func(msg message.MixMessage) *message.Reply {
//回复消息:演示回复用户发送的消息
text := message.NewText(msg.Content)
return &message.Reply{message.MsgText, text}
})
server.Serve()
server.Send()

完整代码:examples/http/http.go

和主流框架配合使用

主要是request和responseWriter在不同框架中获取方式可能不一样:

  • Beego: ./examples/beego/beego.go

  • Gin Framework: ./examples/gin/gin.go

基本配置

1
2
3
4
5
6
7
8
9
memcache := cache.NewMemcache("127.0.0.1:11211")
wcConfig := &wechat.Config{
AppID: cfg.AppID,
AppSecret: cfg.AppSecret,
Token: cfg.Token,
EncodingAESKey: cfg.EncodingAESKey,//消息加解密时用到
Cache: memcache,
}

Cache 设置

Cache主要用来保存全局access_token以及js-sdk中的ticket:
默认采用memcache存储。当然也可以直接实现cache/cache.go中的接口

基本API使用

  • 消息管理

    • 接收普通消息

    • 接收事件推送

    • 被动回复消息

      • 回复文本消息

      • 回复图片消息

      • 回复视频消息

      • 回复音乐消息

      • 回复图文消息

  • 自定义菜单

    • 自定义菜单创建接口

    • 自定义菜单查询接口

    • 自定义菜单删除接口

    • 自定义菜单事件推送

    • 个性化菜单接口

      • 添加个性化菜单

      • 删除个性化菜单

      • 测试个性化菜单匹配结果

    • 获取公众号菜单配置

  • 微信网页开发

    • Oauth2 授权

      • 发起授权

      • 通过code换取access_token

      • 拉取用户信息

      • 刷新access_token

      • 检验access_token是否有效

    • 获取js-sdk配置

  • 素材管理

更多API使用请参考文档:
https://github.com/silenceper…