wecombot 是企业微信群机器人的一个 go 语言 sdk,API友好,无任何第三方依赖。
$ go get github.com/voidint/wecombot@latest
发送文本类型消息
package main
import "github.com/voidint/wecombot"
func main() {
bot := wecombot.NewBot("YOUR_KEY")
bot.SendText("hello 世界!") // 最长不超过2048个字节
bot.SendText(
"你好 world!",
wecombot.WithMentionedMobileList("186xxxx1234", "170xxxx9876"), // 发送文字内容并@某些手机用户
)
}
发送Markdown类型消息
package main
import "github.com/voidint/wecombot"
var md = `
# 成绩单
**姓名:**张三
**数学:**<font color="info">97</font>
**语文:**<font color="comment">72</font>
**英语:**<font color="warning">61</font>
`
func main() {
wecombot.NewBot("YOUR_KEY").SendMarkdown(md) // 最长不超过4096个字节
}
注意:企业微信群消息仅支持有限的 markdown 语法
发送图片类型消息
package main
import (
"log"
"os"
"github.com/voidint/wecombot"
)
func main() {
f, err := os.ReadFile("logo.jpg") // 图片最大不能超过2M,支持JPG,PNG格式。
if err != nil {
log.Fatal(err)
}
wecombot.NewBot("YOUR_KEY").SendImage(f)
}
发送图文类型消息
package main
import (
"github.com/voidint/wecombot"
)
func takePointer(s string) *string {
return &s
}
func main() {
wecombot.NewBot("YOUR_KEY").SendNews(&wecombot.Article{
Title: "中秋节礼品领取",
Description: takePointer("今年中秋节公司有豪礼相送"), // 可选字段使用指针类型
URL: "www.qq.com",
PicURL: takePointer("https://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"),
})
}
发送文件类型消息
package main
import (
"log"
"os"
"github.com/voidint/wecombot"
)
func main() {
data, err := os.ReadFile("学生成绩单.xlsx") // 文件大小不超过20M
if err != nil {
log.Fatal(err)
}
wecombot.NewBot("YOUR_KEY").SendFile(data, "学生成绩单.xlsx")
}
发送语音类型消息
package main
import (
"log"
"os"
"github.com/voidint/wecombot"
)
func main() {
data, err := os.ReadFile("生日祝福.amr") // 文件大小不超过2M,播放长度不超过60s,仅支持AMR格式。
if err != nil {
log.Fatal(err)
}
wecombot.NewBot("YOUR_KEY").SendVoice(data, "生日祝福.amr")
}
发送文本通知模板卡片类型消息
package main
import (
"github.com/voidint/wecombot"
)
func takePointer(s string) *string {
return &s
}
func main() {
var msg wecombot.TextNoticeTemplateCardMessage
msg.TemplateCard.MainTitle.Title = takePointer("欢迎使用企业微信")
msg.TemplateCard.MainTitle.Desc = takePointer("您的好友正在邀请您加入企业微信")
msg.TemplateCard.CardAction.Type = 1
msg.TemplateCard.CardAction.URL = takePointer("https://work.weixin.qq.com/?from=openApi")
// 参数较多,详见文档。
wecombot.NewBot("YOUR_KEY").SendTextNoticeTemplateCardMessage(&msg)
}
发送图文展示模板卡片类型消息
package main
import (
"github.com/voidint/wecombot"
)
func takePointer(s string) *string {
return &s
}
func main() {
var msg wecombot.NewsNoticeTemplateCardMessage
msg.TemplateCard.MainTitle.Title = takePointer("欢迎使用企业微信")
msg.TemplateCard.MainTitle.Desc = takePointer("您的好友正在邀请您加入企业微信")
msg.TemplateCard.CardImage.URL = *takePointer("https://wework.qpic.cn/wwpic/354393_4zpkKXd7SrGMvfg_1629280616/0")
msg.TemplateCard.CardAction.Type = 1
msg.TemplateCard.CardAction.URL = takePointer("https://work.weixin.qq.com/?from=openApi")
// 参数较多,详见文档。
wecombot.NewBot("YOUR_KEY").SendNewsNoticeTemplateCardMessage(&msg)
}
package main
import (
"log"
"os"
"github.com/voidint/wecombot"
)
func main() {
data, err := os.ReadFile("学生成绩单.xlsx") // 文件大小不超过20M
if err != nil {
log.Fatal(err)
}
mediaRes, err := wecombot.NewBot("YOUR_KEY").UploadMedia(wecombot.NormalFile, data, "学生成绩单.xlsx")
if err != nil {
log.Fatal(err)
}
log.Printf("media id: %s", mediaRes.MediaID)
}