openwechat
golang版個人微信號API, 類似開發公眾號一樣,開發個人微信號
使用前提
golang版本大於等於1.11
安裝
go get
go get github.com/eatMoreApple/openwechat
快速開始
登錄微信
package main
import (
"fmt"
"github.com/eatMoreApple/openwechat"
)
func main() {
messageHandler := func(msg *openwechat.Message) {
fmt.Println(msg)
}
bot := openwechat.DefaultBot()
// 注冊消息處理函數
bot.MessageHandler = messageHandler
// 設置默認的登錄回調
// 可以設置通過該uuid獲取到登錄的二維碼
bot.UUIDCallback = openwechat.PrintlnQrcodeUrl
// 登錄
if err := bot.Login(); err != nil {
fmt.Println(err)
return
}
// 阻塞主程序,直到用戶退出或發生異常
bot.Block()
}
突破網頁版登錄限制
網頁版登陸不上的可以嘗試使用該模式登陸
bot := openwechat.DefaultBot(openwechat.Desktop)
回復消息
messageHandler := func(msg *openwechat.Message) {
msg.ReplyText("hello")
}
獲取消息的發送者
messageHandler := func(msg *openwechat.Message) {
sender, err := msg.Sender()
}
獲取所有的好友
// 登錄之后調用
self, err := bot.GetCurrentUser()
if err != nil {
fmt.Println(err)
return
}
friends, err := self.Friends()
發送消息給好友
self, err := bot.GetCurrentUser()
if err != nil {
fmt.Println(err)
return
}
friends, err := self.Friends()
if err != nil {
fmt.Println(err)
return
}
if friends.Count() > 0 {
// 發送給第一個好友
friends[0].SendText("你好")
}
發送圖片消息
friends, err := self.Friends()
if err != nil {
fmt.Println(err)
return
}
if friends.Count() > 0 {
// 發送給第一個好友
img, _ := os.Open("test.png")
defer img.Close()
friends[0].SendImage(img)
}
bot.Block()
搜索好友
friends, err := self.Friends()
if err != nil {
fmt.Println(err)
return
}
results := friends.Search(1, func(friend *Friend) bool { return friend.User.RemarkName == "阿青" }, func(friend *Friend) bool { return friend.Sex == 2 }) // 查找數量為1符合條件的好友
fmt.Println(results)
搜索群組
groups, err := self.Groups()
if err != nil {
fmt.Println(err)
return
}
results := group.Search(1, func(group *Group) bool { return group.NickName == "厲害了" })
fmt.Println(results)
更多功能請在代碼中探索。。。
// todo: add more support