Go
版本的企业微信Webhook
机器人SDK
- 文本类型
client.Text
- Markdown类型
client.Markdown
- 图片类型
client.Image
- 图文类型
client.News
- 文件类型
client.File
- 语音类型
client.Voice
-
初始化 Client
WebhookAddress 为创建机器人时产生的 Webhook 地址。
client, err := wechat.NewClient("https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxxxxxxx") if err != nil { fmt.Println(err) }
-
发送文本消息
atMobiles
: at指定的用户。isAtAll
: at所有用户。 如果atMobiles
和isAtAll
同时指定,则会同时生效。ret, err := client.Text("hello wechat robot", []string{"18611111111"}, false) if err != nil { fmt.Println(err) } else { fmt.Printf("%#v", ret) }
-
发送Markdown消息
注意:如果使用多行字符串的话,需要设置
replaceAllTable
为true
,将所有的\n\t
替换为\n
,否则发出来的可能不是Markdown格式的消息。ret, err := client.Markdown(fmt.Sprintf(` # %s **%s** [这是一个链接](%s) > 这是一个引用文本 * 列表1 * 列表2 <font color="red">红色字体</font>`, "一级标题", "加粗", "http://work.weixin.qq.com/api/doc"), true, ) if err != nil { fmt.Println(err) } else { fmt.Printf("%#v", ret) }
-
发送图片类型的消息
注意:图片类型支持png和jpg格式,不能超过2M。
f, err := os.Open("/Users/coder/Desktop/test.png") if err != nil { fmt.Println(err) } defer func() { _ = f.Close() }() ibs, err := io.ReadAll(f) if err != nil { fmt.Println(err) } ret, err := client.Image(ibs) if err != nil { fmt.Println(err) } else { fmt.Printf("%#v", ret) }
-
发送图文类型的消息
Title // 标题,不超过128个字节,超过会自动截断。必选 Url // 描述,不超过512个字节,超过会自动截断。必选 Description // 点击后跳转的链接。可选 Picurl // 图文消息的图片链接,支持JPG、PNG格式,较好的效果为大图 1068*455,小图150*150。可选
ret, _ := client.News([]wechat.NewsArticle{ {Title: "点击图片跳转到百度", Description: "百度搜索", Url: "https://m.baidu.com", Picurl: "https://img.zcool.cn/community/01ab1f554496aa0000019ae9a878ba.jpg@1280w_1l_2o_100sh.jpg"}, {Title: "点击图片跳转到京东", Description: "京东购物", Url: "https://m.jd.com", Picurl: "https://img2.baidu.com/it/u=1388560115,51053335&fm=253&fmt=auto&app=120&f=JPEG?w=1200&h=800"}, }) fmt.Printf("%#v", ret)
-
发送文件类型的消息
文件大小不超过20M
fbytes, _ := os.ReadFile("/Users/coder/Desktop/test.png") ret, err := client.File("test.png", fbytes) if err != nil { fmt.Println(err) } else { fmt.Printf("%#v", ret) }
-
发送语音类型的消息
机器人限制:文件大小不超过2M,播放长度不超过60s,仅支持AMR格式 操作方式和文件类型类似