1、java
最近用在學習golang,寫了個小工具練練手。經過golang模擬微信網頁端,接收微信服務器的消息並定製。可接入圖靈機器人的api實現一個微信機器人的小玩具,固然了,能夠有更多更好玩的玩法。git
2、 github
地址: https://github.com/Orlion/Gochatgolang
一個Go微信機器人包json
有部分僞代碼,不能直接運行api
package demo import ( "gochat" "os" "fmt" ) func main() { // new 一個微信實例 weChat := gochat.NewWeChat("storage.json", os.Stdout) // 註冊事件監聽 RegListener(weChat) // 登陸 err := weChat.Login() if err != nil { fmt.Println(err.Error()) } // Run 開始監聽微信服務器 err = weChat.Run() if err != nil { fmt.Println(err.Error()) } } // 註冊事件監聽器 func RegListener(weChat *gochat.WeChat) { // 註冊生成Uuid事件監聽器 weChat.SetListener(gochat.GEN_UUID_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.GenUuidEventData) if ok { sendEmail("Uuid=" + eventData.Uuid) } }) // 註冊已掃碼事件監聽器 weChat.SetListener(gochat.SCAN_CODE_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.ScanCodeEventData) if ok { sendEmail("UserAvatar=" + eventData.UserAvatar) } }) // 註冊受權登陸的事件監聽器 weChat.SetListener(gochat.CONFIRM_AUTH_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.ConfirmAuthEventData) if ok { sendEmail("RedirectUrl=" + eventData.RedirectUrl) } }) // 註冊已登陸事件監聽器 weChat.SetListener(gochat.LOGIN_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.LoginEventData) if ok { sendEmail("DeviceID=" + eventData.DeviceID) } }) // 註冊初始化完成事件監聽器 weChat.SetListener(gochat.INIT_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.InitEventData) if ok { sendEmail("MemberCount=" + eventData.Me.MemberCount) } }) // 註冊聯繫人初始化完成事件監聽器 weChat.SetListener(gochat.CONTACTS_INIT_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.ContactsInitEventData) if ok { sendEmail("ContactsCount=" + eventData.ContactsCount) } }) // 註冊同步微信失敗事件監聽器 weChat.SetListener(gochat.LISTEN_FAILED_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.ListenFailedEventData) if ok { sendEmail("ListenFailedCount=" + eventData.ListenFailedCount) if (eventData.ListenFailedCount > 10) { // 連續同步失敗10次後從新登陸 weChat.Login() } } }) // 註冊聯繫人修改事件監聽器 weChat.SetListener(gochat.CONTACT_MODIFY_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.ContactModifyEventData) if ok { sendEmail("UserNames=" + eventData.UserNames) } }) // 註冊聯繫人刪除事件監聽器 weChat.SetListener(gochat.CONTACT_DELETE_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.ContactDeleteEventData) if ok { sendEmail("UserNames=" + eventData.UserNames) } }) // 註冊消息事件監聽器 weChat.SetListener(gochat.MESSAGE_EVENT, func(event gochat.Event){ eventData, ok := event.Data.(gochat.MessageEventData) if ok { if eventData.IsGroupMessage { if eventData.IsAtMe { weChat.SendTextMsg(tuling(eventData.Content, eventData.SenderUserId), eventData.SenderUserInfo.UserName) } } else { weChat.SendTextMsg(tuling(eventData.Content, eventData.SenderUserId), eventData.SenderUserInfo.UserName) } } }) }
寫完以後就沒什麼興趣用這個庫作東西了,主要是用的openshift太慢,並且微信很不穩定常常變動規則。服務器
不過用微信機器人仍是能夠作不少有趣的事情的,有很多同窗在玩微信機器人。能夠用java寫個Android的App。微信
相似項目有:工具