Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/electricbubble/wecom-bot-api
🤖 企业微信-群机器人-API
https://github.com/electricbubble/wecom-bot-api
wecom wecom-bot-api
Last synced: 3 months ago
JSON representation
🤖 企业微信-群机器人-API
- Host: GitHub
- URL: https://github.com/electricbubble/wecom-bot-api
- Owner: electricbubble
- License: mit
- Created: 2021-01-10T10:05:46.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2023-04-23T06:19:02.000Z (over 1 year ago)
- Last Synced: 2024-06-20T06:33:38.441Z (5 months ago)
- Topics: wecom, wecom-bot-api
- Language: Go
- Homepage:
- Size: 21.5 KB
- Stars: 30
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# WeCom-Bot-API
企业微信-群机器人-API
## Installation
```shell
go get github.com/electricbubble/wecom-bot-api
```## Usage
#### 纯文本消息
```go
package mainimport (
botApi "github.com/electricbubble/wecom-bot-api"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
phoneNumber := "Phone_Number"
userid := "Userid"bot := botApi.NewWeComBot(botKey)
// 仅发送文本内容
_ = bot.PushTextMessage("hi")// 通过群成员 `手机号码` 进行 `@` 提醒
_ = bot.PushTextMessage("hi again", botApi.MentionByMobile(phoneNumber))// 通过群成员 `userid` 进行 `@` 提醒
_ = bot.PushTextMessage("hi again", botApi.MentionByUserid(userid))// @全部成员
_ = bot.PushTextMessage("hi again",
botApi.MentionAllByMobile(),
// botApi.MentionAllByUserid(),
)
}```
#### Markdown 消息
```go
package mainimport (
"bytes"
botApi "github.com/electricbubble/wecom-bot-api"
"github.com/electricbubble/wecom-bot-api/md"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
userid := "Userid"bot := botApi.NewWeComBot(botKey)
content := bytes.NewBufferString(md.Heading(1, "H1"))
content.WriteString("实时新增用户反馈" + md.WarningText("132例") + ",请相关同事注意。\n")
content.WriteString(md.QuoteText("类型:" + md.CommentText("用户反馈")))
content.WriteString(md.QuoteText("普通用户反馈:" + md.CommentText("117例")))
content.WriteString(md.QuoteText("VIP用户反馈:" + md.CommentText("15例")))
// 👆效果等同于👇
/*
# H1
实时新增用户反馈 132例,请相关同事注意。\n
> 类型:用户反馈
> 普通用户反馈:117例
> VIP用户反馈:15例
*/// 仅发送 `markdown` 格式的文本
_ = bot.PushMarkdownMessage(content.String())// 通过群成员 `userid` 进行 `@` 提醒
_ = bot.PushMarkdownMessage(
md.Heading(2, "H2") + md.Bold("hi") + "\n" + "> again\n" +
md.MentionByUserid(userid),
)
}```
#### 图片消息
```go
package mainimport (
botApi "github.com/electricbubble/wecom-bot-api"
"io/ioutil"
"os"
"path"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
bot := botApi.NewWeComBot(botKey)userHomeDir, _ := os.UserHomeDir()
filename := path.Join(userHomeDir, "Pictures", "IMG_5246.jpg")
readFile, _ := ioutil.ReadFile(filename)// 发送 图片消息
_ = bot.PushImageMessage(readFile)
}```
#### 图文消息
```go
package mainimport (
botApi "github.com/electricbubble/wecom-bot-api"
"os"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
bot := botApi.NewWeComBot(botKey)article := botApi.NewArticle("中秋节礼品领取", "www.qq.com",
botApi.ArticleDescription("今年中秋节公司有豪礼相送"),
botApi.ArticlePicUrl("http://res.mail.qq.com/node/ww/wwopenmng/images/independent/doc/test_pic_msg1.png"),
)
article2 := botApi.NewArticle("图文标题2", "www.qq.com",
botApi.ArticleDescription("图文描述2"),
)
article3 := botApi.NewArticle("图文标题3", "www.qq.com",
botApi.ArticleDescription("图文描述3"),
)
_, _ = article2, article3// 发送 `1条图文` 消息
_ = bot.PushNewsMessage(article)// 发送 `多条图文` 消息 (一个图文消息支持 `1~8条` 图文)
_ = bot.PushNewsMessage(article, article2, article3)
}```
#### [文本通知模版卡片](https://work.weixin.qq.com/api/doc/90000/90136/91770#%E6%96%87%E6%9C%AC%E9%80%9A%E7%9F%A5%E6%A8%A1%E7%89%88%E5%8D%A1%E7%89%87)
```go
package mainimport (
botApi "github.com/electricbubble/wecom-bot-api"
"os"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
bot := botApi.NewWeComBot(botKey)// "media_id":"38BHOWH1SHSCZImMcuPmG2TuJSpYikh0AxznKJYSUJAJaFJvDeRu60NTAuj_IKLoR"
media := botApi.Media{ID: "38BHOWH1SHSCZImMcuPmG2TuJSpYikh0AxznKJYSUJAJaFJvDeRu60NTAuj_IKLoR"}rawUrl := "https://work.weixin.qq.com/api/doc/90000/90136/91770#%E6%96%87%E6%9C%AC%E9%80%9A%E7%9F%A5%E6%A8%A1%E7%89%88%E5%8D%A1%E7%89%87"
// botApi.TemplateCardActionApp("APPID", "/index.html")
_ = bot.PushTemplateCardTextNotice(
botApi.TemplateCardMainTitle("一级标题", "标题辅助信息"), botApi.TemplateCardActionUrl(rawUrl),
botApi.TemplateCardSource("https://wework.qpic.cn/wwpic/252813_jOfDHtcISzuodLa_1629280209/0", "企业微信"),
botApi.TemplateCardEmphasisContent("关键数据标题", "关键数据描述"),
botApi.TemplateCardSubTitleText("二级普通文本"),
botApi.TemplateCardHorizontalContent("二级标题(text)", botApi.TemplateCardHorizontalContentText("二级文本")),
botApi.TemplateCardHorizontalContent("二级标题(url)", botApi.TemplateCardHorizontalContentUrl(rawUrl, "api地址")),
botApi.TemplateCardHorizontalContent("二级标题(media)", botApi.TemplateCardHorizontalContentMedia("IMG_5246.jpg", media)),
botApi.TemplateCardJump("跳转指引", botApi.TemplateCardJumpUrl(rawUrl)),
botApi.TemplateCardJump("企业微信官网", botApi.TemplateCardJumpUrl("https://work.weixin.qq.com")),
)
}```
#### [图文展示模版卡片](https://work.weixin.qq.com/api/doc/90000/90136/91770#%E5%9B%BE%E6%96%87%E5%B1%95%E7%A4%BA%E6%A8%A1%E7%89%88%E5%8D%A1%E7%89%87)
```go
package mainimport (
botApi "github.com/electricbubble/wecom-bot-api"
"os"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
bot := botApi.NewWeComBot(botKey)// "media_id":"38BHOWH1SHSCZImMcuPmG2TuJSpYikh0AxznKJYSUJAJaFJvDeRu60NTAuj_IKLoR"
media := botApi.Media{ID: "38BHOWH1SHSCZImMcuPmG2TuJSpYikh0AxznKJYSUJAJaFJvDeRu60NTAuj_IKLoR"}rawUrl := "https://work.weixin.qq.com/api/doc/90000/90136/91770#%E5%9B%BE%E6%96%87%E5%B1%95%E7%A4%BA%E6%A8%A1%E7%89%88%E5%8D%A1%E7%89%87"
imgUrl := "https://wework.qpic.cn/wwpic/354393_4zpkKXd7SrGMvfg_1629280616/0"// botApi.TemplateCardActionApp("APPID", "/index.html")
_ = bot.PushTemplateCardNewsNotice(
botApi.TemplateCardMainTitle("一级标题", "标题辅助信息"), botApi.TemplateCardImage(imgUrl), botApi.TemplateCardActionUrl(rawUrl),
botApi.TemplateCardSource("https://wework.qpic.cn/wwpic/252813_jOfDHtcISzuodLa_1629280209/0", "企业微信"),
botApi.TemplateCardVerticalContent("卡片二级标题", "二级普通文本"),
botApi.TemplateCardHorizontalContent("二级标题(text)", botApi.TemplateCardHorizontalContentText("二级文本")),
botApi.TemplateCardHorizontalContent("二级标题(url)", botApi.TemplateCardHorizontalContentUrl(rawUrl, "api地址")),
botApi.TemplateCardHorizontalContent("二级标题(media)", botApi.TemplateCardHorizontalContentMedia("IMG_5246.jpg", media)),
botApi.TemplateCardJump("跳转指引", botApi.TemplateCardJumpUrl(rawUrl)),
botApi.TemplateCardJump("企业微信官网", botApi.TemplateCardJumpUrl("https://work.weixin.qq.com")),
)
}```
#### 文件消息
```go
package mainimport (
botApi "github.com/electricbubble/wecom-bot-api"
"os"
"path"
)func main() {
botKey := "WeCom_Bot_Key" // 只填 key= 后边的内容
bot := botApi.NewWeComBot(botKey)userHomeDir, _ := os.UserHomeDir()
filename := path.Join(userHomeDir, "Pictures", "IMG_5246.jpg")// 必须先通过企业微信上传文件接口, 获取 `media_id` (仅三天内有效)
// https://work.weixin.qq.com/api/doc/90000/90136/91770#%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%8E%A5%E5%8F%A3
media, _ := bot.UploadFile(filename)
// 发送 文件消息
_ = bot.PushFileMessage(media)
}```