Skip to content

voidint/wecombot

Folders and files

NameName
Last commit message
Last commit date
Sep 1, 2023
Sep 1, 2023
Sep 3, 2023
Sep 6, 2023
Sep 2, 2023
Sep 3, 2023
Sep 1, 2023
Sep 3, 2023
Sep 3, 2023
Sep 3, 2023
Sep 3, 2023
Sep 3, 2023
Sep 3, 2023
Sep 3, 2023

Repository files navigation

wecombot

PkgGoDev Go Report Card codebeat badge

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("http://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)
}

Packages

No packages published

Languages