Golang 微信機器人包

1、java

    最近用在學習golang,寫了個小工具練練手。經過golang模擬微信網頁端,接收微信服務器的消息並定製。可接入圖靈機器人的api實現一個微信機器人的小玩具,固然了,能夠有更多更好玩的玩法。git

2、 github

    地址: https://github.com/Orlion/Gochatgolang

 

 

Gochat

一個Go微信機器人包json

特色

  1. 靈活。在微信從登陸到開始同步服務器消息的過程當中的各個節點觸發事件,從而經過註冊時間監聽器就能夠靈活的實現不少功能。
  2. 失敗從新登陸。能夠經過註冊同步失敗的事件從新調用Login()方法來從新登陸,從而達到失敗自動從新登陸, 也能夠調用pushlogin的接口免掃碼來登陸。

Demo

有部分僞代碼,不能直接運行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)
			}
		}
	})
}

Something

  寫完以後就沒什麼興趣用這個庫作東西了,主要是用的openshift太慢,並且微信很不穩定常常變動規則。服務器

  不過用微信機器人仍是能夠作不少有趣的事情的,有很多同窗在玩微信機器人。能夠用java寫個Android的App。微信

  相似項目有:工具

相關文章
相關標籤/搜索