Documentation
¶
Overview ¶
Package wecombot provides a WeCom (WeChat Work) bot client. See: https://developer.work.weixin.qq.com/document/path/99110
Index ¶
- type Bot
- func (b *Bot) Send(msg interface{}) error
- func (b *Bot) SendImage(base64, md5 string) error
- func (b *Bot) SendMarkdown(content string) error
- func (b *Bot) SendNews(articles ...news.Article) error
- func (b *Bot) SendTemplateCard(card *templatecard.Card) error
- func (b *Bot) SendText(content string) error
- func (b *Bot) UploadMedia(filename string, data []byte) (*types.UploadedMedia, error)
- type Option
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bot ¶
type Bot struct {
// contains filtered or unexported fields
}
Bot is a WeCom bot client.
func (*Bot) Send ¶
Send sends a message to the WeCom bot.
Example (Image) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/image"
)
func main() {
bot := wecombot.New("your-bot-key")
// base64: base64 encoded image content
// md5: md5 hash of original image
msg := image.New("base64encodedstring", "md5hash")
if err := bot.Send(msg); err != nil {
log.Printf("Failed to send: %v", err)
}
}
Example (Markdown) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/markdown"
)
func main() {
bot := wecombot.New("your-bot-key")
content := `## System Notification
**Time**: 2024-01-15 10:30:00
**Level**: Warning
[View Details](https://example.com)`
if err := bot.Send(markdown.New(content)); err != nil {
log.Printf("Failed to send: %v", err)
}
}
Example (News) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/news"
)
func main() {
bot := wecombot.New("your-bot-key")
msg := news.New().
AddArticle("Title 1", "Desc 1", "https://example.com/1", "https://example.com/pic1.jpg").
AddArticle("Title 2", "Desc 2", "https://example.com/2", "https://example.com/pic2.jpg")
if err := bot.Send(msg); err != nil {
log.Printf("Failed to send: %v", err)
}
}
Example (TemplateCard_newsNotice) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/templatecard"
)
func main() {
bot := wecombot.New("your-bot-key")
card := templatecard.NewNewsNotice().
WithSource("https://example.com/icon.png", "WeCom", templatecard.SourceDescColorGreen).
WithMainTitle("WeCom Update", "New template card feature").
WithCardImage("https://example.com/news.jpg", 1.3).
WithCardAction(templatecard.ActionTypeURL, "https://work.weixin.qq.com")
if err := bot.Send(card); err != nil {
log.Printf("Failed to send: %v", err)
}
}
Example (TemplateCard_textNotice) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/templatecard"
)
func main() {
bot := wecombot.New("your-bot-key")
card := templatecard.NewTextNotice().
WithSource("https://example.com/icon.png", "WeCom", templatecard.SourceDescColorBlue).
WithMainTitle("Onboarding Approval", "You have a pending approval").
WithEmphasisContent("100", "Pending Count").
WithSubTitle("Please process in time").
WithCardAction(templatecard.ActionTypeURL, "https://work.weixin.qq.com").
AddHorizontalContent("Applicant", "John Doe", templatecard.HorizontalContentTypeText).
AddJump(templatecard.JumpTypeURL, "View Details", "https://work.weixin.qq.com")
if err := bot.Send(card); err != nil {
log.Printf("Failed to send: %v", err)
}
}
Example (Text) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/text"
)
func main() {
bot := wecombot.New("your-bot-key")
msg := text.New("Hello, World!")
if err := bot.Send(msg); err != nil {
log.Printf("Failed to send: %v", err)
}
}
Example (TextWithMention) ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
"github.com/futuretea/go-wecom-bot/text"
)
func main() {
bot := wecombot.New("your-bot-key")
msg := text.New("Hello, @all!").
WithMention("all", "userid1").
WithMentionMobile("13800138000")
if err := bot.Send(msg); err != nil {
log.Printf("Failed to send: %v", err)
}
}
func (*Bot) SendMarkdown ¶
SendMarkdown sends a markdown message.
Example ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
)
func main() {
bot := wecombot.New("your-bot-key")
if err := bot.SendMarkdown("## Alert\nSystem is **down**!"); err != nil {
log.Printf("Failed to send: %v", err)
}
}
func (*Bot) SendTemplateCard ¶
func (b *Bot) SendTemplateCard(card *templatecard.Card) error
SendTemplateCard sends a template card.
func (*Bot) SendText ¶
SendText sends a text message.
Example ¶
package main
import (
"log"
wecombot "github.com/futuretea/go-wecom-bot"
)
func main() {
bot := wecombot.New("your-bot-key")
if err := bot.SendText("Hello, this is quick text!"); err != nil {
log.Printf("Failed to send: %v", err)
}
}
func (*Bot) UploadMedia ¶
UploadMedia uploads a file to WeCom server.
type Option ¶
type Option func(*Bot)
Option configures a Bot.
func WithBaseURL ¶
WithBaseURL sets a custom webhook base URL for testing or proxy.
func WithDebug ¶
func WithDebug() Option
WithDebug enables HTTP request/response debug logging. Useful for development and troubleshooting.
func WithHTTPClient ¶
func WithHTTPClient(client httpclient.Client) Option
WithHTTPClient sets a custom HTTP client.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package image provides image message support for WeCom bot.
|
Package image provides image message support for WeCom bot. |
|
Package markdown provides markdown message support for WeCom bot.
|
Package markdown provides markdown message support for WeCom bot. |
|
Package news provides news message support for WeCom bot.
|
Package news provides news message support for WeCom bot. |
|
Package templatecard provides template card message support for WeCom bot.
|
Package templatecard provides template card message support for WeCom bot. |
|
Package text provides text message support for WeCom bot.
|
Package text provides text message support for WeCom bot. |
|
Package types provides common types and constants for WeCom bot messages.
|
Package types provides common types and constants for WeCom bot messages. |
Click to show internal directories.
Click to hide internal directories.