Documentation ¶
Index ¶
- Constants
- Variables
- func FormatEmoji(text string) string
- func GetFileContentType(file io.Reader) (string, error)
- func GetQrcodeUrl(uuid string) string
- func GetRandomDeviceId() string
- func IgnoreNetworkError(errHandler func(err error)) func(error)
- func IsNetworkError(err error) bool
- func NewFileHotReloadStorage(filename string) io.ReadWriteCloser
- func NewJsonFileHotReloadStorage(filename string) io.ReadWriteCloserdeprecated
- func PrintlnQrcodeUrl(uuid string)
- type AppMessageData
- type AppMessageType
- type BaseBotLoginOption
- type BaseRequest
- type BaseResponse
- type Bot
- func (b *Bot) Alive() bool
- func (b *Bot) Block() error
- func (b *Bot) Context() context.Context
- func (b *Bot) CrashReason() error
- func (b *Bot) DumpHotReloadStorage() error
- func (b *Bot) DumpTo(writer io.Writer) error
- func (b *Bot) Exit()
- func (b *Bot) ExitWith(err error)
- func (b *Bot) GetCurrentUser() (*Self, error)
- func (b *Bot) HotLogin(storage HotReloadStorage, opts ...BotLoginOption) error
- func (b *Bot) IsHot() bool
- func (b *Bot) Login() error
- func (b *Bot) Logout() error
- func (b *Bot) PushLogin(storage HotReloadStorage, opts ...BotLoginOption) error
- func (b *Bot) UUID() string
- type BotLogin
- type BotLoginOption
- type BotOptionGroup
- type BotPreparer
- type BotPreparerFunc
- type Caller
- func (c *Caller) AddFriendIntoChatRoom(ctx context.Context, opt *CallerAddFriendIntoChatRoomOptions) error
- func (c *Caller) CheckLogin(ctx context.Context, uuid, tip string) (CheckLoginResponse, error)
- func (c *Caller) GetLoginInfo(ctx context.Context, path *url.URL) (*LoginInfo, error)
- func (c *Caller) GetLoginUUID(ctx context.Context) (string, error)
- func (c *Caller) Logout(ctx context.Context, info *LoginInfo) error
- func (c *Caller) RemoveFriendFromChatRoom(ctx context.Context, opt *CallerRemoveFriendFromChatRoomOptions) error
- func (c *Caller) SyncCheck(ctx context.Context, opt *CallerSyncCheckOptions) (*SyncCheckResponse, error)
- func (c *Caller) UploadMedia(ctx context.Context, file *os.File, opt *CallerUploadMediaOptions) (*UploadResponse, error)
- func (c *Caller) WebInit(ctx context.Context, request *BaseRequest) (*WebInitResponse, error)
- func (c *Caller) WebWxBatchGetContact(ctx context.Context, members Members, request *BaseRequest) (Members, error)
- func (c *Caller) WebWxCreateChatRoom(ctx context.Context, opt *CallerWebWxCreateChatRoomOptions) (*Group, error)
- func (c *Caller) WebWxGetContact(ctx context.Context, info *LoginInfo) (Members, error)
- func (c *Caller) WebWxOplog(ctx context.Context, opt *CallerWebWxOplogOptions) error
- func (c *Caller) WebWxPushLogin(ctx context.Context, uin int64) (*PushLoginResponse, error)
- func (c *Caller) WebWxRelationPin(ctx context.Context, opt *CallerWebWxRelationPinOptions) error
- func (c *Caller) WebWxRenameChatRoom(ctx context.Context, opt *CallerWebWxRenameChatRoomOptions) error
- func (c *Caller) WebWxRevokeMsg(ctx context.Context, msg *SentMessage, request *BaseRequest) error
- func (c *Caller) WebWxSendAppMsg(ctx context.Context, msg *SendMessage, req *BaseRequest) (*SentMessage, error)
- func (c *Caller) WebWxSendEmoticon(ctx context.Context, md5 string, reader io.Reader, ...) (*SentMessage, error)
- func (c *Caller) WebWxSendFile(ctx context.Context, reader io.Reader, opt *CallerWebWxSendFileOptions) (*SentMessage, error)
- func (c *Caller) WebWxSendImageMsg(ctx context.Context, reader io.Reader, opt *CallerWebWxSendImageMsgOptions) (*SentMessage, error)
- func (c *Caller) WebWxSendMsg(ctx context.Context, opt *CallerWebWxSendMsgOptions) (*SentMessage, error)
- func (c *Caller) WebWxSendVideoMsg(ctx context.Context, reader io.Reader, opt *CallerWebWxSendAppMsgOptions) (*SentMessage, error)
- func (c *Caller) WebWxStatusAsRead(ctx context.Context, opt *CallerWebWxStatusAsReadOptions) error
- func (c *Caller) WebWxStatusNotify(ctx context.Context, opt *CallerWebWxStatusNotifyOptions) error
- func (c *Caller) WebWxSync(ctx context.Context, opt *CallerWebWxSyncOptions) (*WebWxSyncResponse, error)
- func (c *Caller) WebWxVerifyUser(ctx context.Context, opt *CallerWebWxVerifyUserOptions) error
- type CallerAddFriendIntoChatRoomOptions
- type CallerCommonOptions
- type CallerRemoveFriendFromChatRoomOptions
- type CallerSyncCheckOptions
- type CallerUploadMediaCommonOptions
- type CallerUploadMediaOptions
- type CallerWebWxCreateChatRoomOptions
- type CallerWebWxOplogOptions
- type CallerWebWxRelationPinOptions
- type CallerWebWxRenameChatRoomOptions
- type CallerWebWxSendAppMsgOptions
- type CallerWebWxSendFileOptions
- type CallerWebWxSendImageMsgOptions
- type CallerWebWxSendMsgOptions
- type CallerWebWxStatusAsReadOptions
- type CallerWebWxStatusNotifyOptions
- type CallerWebWxSyncOptions
- type CallerWebWxVerifyUserOptions
- type Card
- type CheckLoginResponse
- type Client
- func (c *Client) AddHttpHook(hooks ...HttpHook)
- func (c *Client) AddMemberIntoChatRoom(ctx context.Context, opt *ClientAddMemberIntoChatRoomOption) (*http.Response, error)
- func (c *Client) CheckLogin(ctx context.Context, uuid, tip string) (*http.Response, error)
- func (c *Client) Do(req *http.Request) (*http.Response, error)
- func (c *Client) GetLoginInfo(ctx context.Context, path *url.URL) (*http.Response, error)
- func (c *Client) GetLoginQrcode(ctx context.Context, uuid string) (*http.Response, error)
- func (c *Client) GetLoginUUID(ctx context.Context) (*http.Response, error)
- func (c *Client) HTTPClient() *http.Client
- func (c *Client) InviteMemberIntoChatRoom(ctx context.Context, opt *ClientAddMemberIntoChatRoomOption) (*http.Response, error)
- func (c *Client) Jar() http.CookieJar
- func (c *Client) Logout(ctx context.Context, info *LoginInfo) (*http.Response, error)
- func (c *Client) RemoveMemberFromChatRoom(ctx context.Context, opt *ClientRemoveMemberFromChatRoomOption) (*http.Response, error)
- func (c *Client) SetCookieJar(jar *Jar)
- func (c *Client) SetMode(mode Mode)
- func (c *Client) SyncCheck(ctx context.Context, opt *ClientSyncCheckOptions) (*http.Response, error)
- func (c *Client) WebInit(ctx context.Context, request *BaseRequest) (*http.Response, error)
- func (c *Client) WebWxBatchGetContact(ctx context.Context, members Members, request *BaseRequest) (*http.Response, error)
- func (c *Client) WebWxCreateChatRoom(ctx context.Context, opt *ClientWebWxCreateChatRoomOption) (*http.Response, error)
- func (c *Client) WebWxGetContact(ctx context.Context, sKey string, reqs int64) (*http.Response, error)
- func (c *Client) WebWxGetHeadImg(ctx context.Context, user *User) (*http.Response, error)
- func (c *Client) WebWxGetMedia(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
- func (c *Client) WebWxGetMsgImg(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
- func (c *Client) WebWxGetVideo(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
- func (c *Client) WebWxGetVoice(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
- func (c *Client) WebWxOplog(ctx context.Context, opt *ClientWebWxOplogOption) (*http.Response, error)
- func (c *Client) WebWxPushLogin(ctx context.Context, uin int64) (*http.Response, error)
- func (c *Client) WebWxRelationPin(ctx context.Context, opt *ClientWebWxRelationPinOption) (*http.Response, error)
- func (c *Client) WebWxRenameChatRoom(ctx context.Context, opt *ClientWebWxRenameChatRoomOption) (*http.Response, error)
- func (c *Client) WebWxRevokeMsg(ctx context.Context, msg *SentMessage, request *BaseRequest) (*http.Response, error)
- func (c *Client) WebWxSendAppMsg(ctx context.Context, msg *SendMessage, request *BaseRequest) (*http.Response, error)
- func (c *Client) WebWxSendEmoticon(ctx context.Context, opt *ClientWebWxSendMsgOptions) (*http.Response, error)
- func (c *Client) WebWxSendMsg(ctx context.Context, opt *ClientWebWxSendMsgOptions) (*http.Response, error)
- func (c *Client) WebWxSendMsgImg(ctx context.Context, opt *ClientWebWxSendMsgOptions) (*http.Response, error)
- func (c *Client) WebWxSendVideoMsg(ctx context.Context, request *BaseRequest, msg *SendMessage) (*http.Response, error)
- func (c *Client) WebWxStatusAsRead(ctx context.Context, opt *ClientWebWxStatusAsReadOption) (*http.Response, error)
- func (c *Client) WebWxStatusNotify(ctx context.Context, opt *ClientWebWxStatusNotifyOptions) (*http.Response, error)
- func (c *Client) WebWxSync(ctx context.Context, opt *ClientWebWxSyncOptions) (*http.Response, error)
- func (c *Client) WebWxUploadMediaByChunk(ctx context.Context, file *os.File, opt *ClientWebWxUploadMediaByChunkOptions) (*http.Response, error)
- func (c *Client) WebWxVerifyUser(ctx context.Context, opt *ClientWebWxVerifyUserOption) (*http.Response, error)
- type ClientAddMemberIntoChatRoomOption
- type ClientCommonOptions
- type ClientRemoveMemberFromChatRoomOption
- type ClientSyncCheckOptions
- type ClientWebWxCreateChatRoomOption
- type ClientWebWxOplogOption
- type ClientWebWxRelationPinOption
- type ClientWebWxRenameChatRoomOption
- type ClientWebWxSendMsgOptions
- type ClientWebWxStatusAsReadOption
- type ClientWebWxStatusNotifyOptions
- type ClientWebWxSyncOptions
- type ClientWebWxUploadMediaByChunkOptions
- type ClientWebWxVerifyUserOption
- type CookieGroup
- type Friend
- func (f *Friend) AddIntoGroup(groups ...*Group) error
- func (f *Friend) SendFile(file io.Reader) (*SentMessage, error)
- func (f *Friend) SendImage(file io.Reader) (*SentMessage, error)
- func (f *Friend) SendText(content string) (*SentMessage, error)
- func (f *Friend) SendVideo(file io.Reader) (*SentMessage, error)
- func (f *Friend) SetRemarkName(name string) error
- func (f *Friend) String() string
- type FriendAddMessage
- type Friends
- func (f Friends) AsMembers() Members
- func (f Friends) BroadcastTextToFriendsByRandomTime(msg string) error
- func (f Friends) Count() int
- func (f Friends) First() *Friend
- func (f Friends) GetByNickName(nickname string) *Friend
- func (f Friends) GetByRemarkName(remarkName string) *Friend
- func (f Friends) GetByUsername(username string) *Friend
- func (f Friends) Last() *Friend
- func (f Friends) Search(limit int, searchFuncList ...func(friend *Friend) bool) (results Friends)
- func (f Friends) SearchByID(id string) Friends
- func (f Friends) SearchByNickName(limit int, nickName string) (results Friends)
- func (f Friends) SearchByRemarkName(limit int, remarkName string) (results Friends)
- func (f Friends) SearchByUserName(limit int, username string) (results Friends)
- func (f Friends) SendFile(file io.Reader, delay ...time.Duration) error
- func (f Friends) SendImage(file io.Reader, delays ...time.Duration) error
- func (f Friends) SendText(text string, delays ...time.Duration) error
- func (f Friends) Sort() Friends
- func (f Friends) Uniq() Friends
- type Group
- func (g *Group) AddFriendsIn(friends ...*Friend) error
- func (g *Group) Members() (Members, error)
- func (g *Group) RemoveMembers(members Members) error
- func (g *Group) Rename(name string) error
- func (g *Group) SearchMemberByUsername(username string) (*User, error)
- func (g *Group) SendFile(file io.Reader) (*SentMessage, error)
- func (g *Group) SendImage(file io.Reader) (*SentMessage, error)
- func (g *Group) SendText(content string) (*SentMessage, error)
- func (g *Group) SendVideo(file io.Reader) (*SentMessage, error)
- func (g *Group) String() string
- type Groups
- func (g Groups) AsMembers() Members
- func (g Groups) Count() int
- func (g Groups) First() *Group
- func (g Groups) GetByNickName(nickname string) *Group
- func (g Groups) GetByUsername(username string) *Group
- func (g Groups) Last() *Group
- func (g Groups) Search(limit int, searchFuncList ...func(group *Group) bool) (results Groups)
- func (g Groups) SearchByID(id string) Groups
- func (g Groups) SearchByNickName(limit int, nickName string) (results Groups)
- func (g Groups) SearchByUserName(limit int, username string) (results Groups)
- func (g Groups) SendFile(file io.Reader, delay ...time.Duration) error
- func (g Groups) SendImage(file io.Reader, delay ...time.Duration) error
- func (g Groups) SendText(text string, delay ...time.Duration) error
- func (g Groups) Sort() Groups
- func (g Groups) Uniq() Groups
- type HotLogin
- type HotReloadStorage
- type HotReloadStorageItem
- type HttpHook
- type HttpHooks
- type Jar
- type JsonSerializer
- type LoginChecker
- type LoginCode
- type LoginInfo
- type MPArticle
- type MPSubscribeMsg
- type MatchFunc
- func MatchFuncList(matchFuncs ...MatchFunc) MatchFunc
- func SenderFriendRequired() MatchFunc
- func SenderGroupRequired() MatchFunc
- func SenderMatchFunc(matchFuncs ...MessageSenderMatchFunc) MatchFunc
- func SenderMpRequired() MatchFunc
- func SenderNickNameContainsMatchFunc(nickname string) MatchFunc
- func SenderNickNameEqualMatchFunc(nickname string) MatchFunc
- func SenderRemakeNameContainsFunc(remakeName string) MatchFunc
- func SenderRemarkNameEqualMatchFunc(remarkName string) MatchFunc
- type Members
- func (m Members) Append(user *User) (results Members)
- func (m Members) Count() int
- func (m Members) Detail() error
- func (m Members) First() *User
- func (m Members) Friends() Friends
- func (m Members) GetByNickName(nickname string) (*User, bool)
- func (m Members) GetByRemarkName(remarkName string) (*User, bool)
- func (m Members) GetByUserName(username string) (*User, bool)
- func (m Members) Groups() Groups
- func (m Members) Last() *User
- func (m Members) MPs() Mps
- func (m Members) Search(limit int, searchFuncList ...func(user *User) bool) (results Members)
- func (m Members) SearchByNickName(limit int, nickName string) (results Members)
- func (m Members) SearchByRemarkName(limit int, remarkName string) (results Members)
- func (m Members) SearchByUserName(limit int, username string) (results Members)
- func (m Members) Sort() Members
- func (m Members) Uniq() Members
- type Message
- func (m *Message) Agree(verifyContents ...string) (*Friend, error)
- func (m *Message) AsRead() error
- func (m *Message) Bot() *Bot
- func (m *Message) Card() (*Card, error)
- func (m *Message) Context() context.Context
- func (m *Message) FriendAddMessageContent() (*FriendAddMessage, error)
- func (m *Message) Get(key string) (value interface{}, exist bool)
- func (m *Message) GetFile() (*http.Response, error)
- func (m *Message) GetMedia() (*http.Response, error)
- func (m *Message) GetPicture() (*http.Response, error)
- func (m *Message) GetVideo() (*http.Response, error)
- func (m *Message) GetVoice() (*http.Response, error)
- func (m *Message) HasAttachment() bool
- func (m *Message) HasFile() bool
- func (m *Message) IsArticle() bool
- func (m *Message) IsAt() bool
- func (m *Message) IsCard() bool
- func (m *Message) IsComeFromGroup() bool
- func (m *Message) IsEmoticon() bool
- func (m *Message) IsFriendAdd() bool
- func (m *Message) IsJoinGroup() bool
- func (m *Message) IsLocation() bool
- func (m *Message) IsMedia() bool
- func (m *Message) IsNotify() bool
- func (m *Message) IsPaiYiPai() bool
- func (m *Message) IsPicture() bool
- func (m *Message) IsRealtimeLocation() bool
- func (m *Message) IsRealtimeLocationStart() bool
- func (m *Message) IsRealtimeLocationStop() bool
- func (m *Message) IsRecalled() bool
- func (m *Message) IsReceiveRedPacket() bool
- func (m *Message) IsRenameGroup() bool
- func (m *Message) IsSelfSendToGroup() bool
- func (m *Message) IsSendByFriend() bool
- func (m *Message) IsSendByGroup() bool
- func (m *Message) IsSendBySelf() bool
- func (m *Message) IsSendRedPacket() bool
- func (m *Message) IsSysNotice() bool
- func (m *Message) IsSystem() bool
- func (m *Message) IsText() bool
- func (m *Message) IsTickled() bool
- func (m *Message) IsTickledMe() bool
- func (m *Message) IsTransferAccounts() bool
- func (m *Message) IsVideo() bool
- func (m *Message) IsVoice() bool
- func (m *Message) IsVoipInvite() bool
- func (m *Message) MediaData() (*AppMessageData, error)
- func (m *Message) Owner() *Self
- func (m *Message) Receiver() (*User, error)
- func (m *Message) ReplyEmoticon(md5 string, file io.Reader) (*SentMessage, error)
- func (m *Message) ReplyFile(file io.Reader) (*SentMessage, error)
- func (m *Message) ReplyImage(file io.Reader) (*SentMessage, error)
- func (m *Message) ReplyText(content string) (*SentMessage, error)
- func (m *Message) ReplyVideo(file io.Reader) (*SentMessage, error)
- func (m *Message) RevokeMsg() (*RevokeMsg, error)
- func (m *Message) SaveFile(writer io.Writer) error
- func (m *Message) SaveFileToLocal(filename string) error
- func (m *Message) Sender() (*User, error)
- func (m *Message) SenderInGroup() (*User, error)
- func (m *Message) Set(key string, value interface{})
- func (m *Message) StatusNotify() bool
- func (m *Message) String() string
- func (m *Message) WithContext(ctx context.Context)
- type MessageContext
- type MessageContextHandler
- type MessageContextHandlerGroup
- type MessageDispatcher
- type MessageErrorHandler
- type MessageHandler
- type MessageMatchDispatcher
- func (m *MessageMatchDispatcher) AsMessageHandler() MessageHandler
- func (m *MessageMatchDispatcher) Dispatch(msg *Message)
- func (m *MessageMatchDispatcher) OnCard(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnEmoticon(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnFriend(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnFriendAdd(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnFriendByNickName(nickName string, handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnFriendByRemarkName(remarkName string, handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnGroup(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnGroupByGroupName(groupName string, handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnImage(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnMedia(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnRecalled(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnText(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnTrickled(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnUser(f func(user *User) bool, handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) OnVoice(handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) RegisterHandler(matchFunc MatchFunc, handlers ...MessageContextHandler)
- func (m *MessageMatchDispatcher) SetAsync(async bool)
- type MessageProcessor
- type MessageProcessorGroup
- type MessageResponse
- type MessageResponseParser
- type MessageSenderMatchFunc
- type MessageType
- type Mode
- type Mp
- type Mps
- func (m Mps) AsMembers() Members
- func (m Mps) Count() int
- func (m Mps) First() *Mp
- func (m Mps) GetByNickName(nickname string) *Mp
- func (m Mps) GetByUserName(username string) *Mp
- func (m Mps) Last() *Mp
- func (m Mps) Search(limit int, searchFuncList ...func(*Mp) bool) (results Mps)
- func (m Mps) SearchByNickName(limit int, nickName string) (results Mps)
- func (m Mps) SearchByUserName(limit int, userName string) (results Mps)
- func (m Mps) Sort() Mps
- func (m Mps) Uniq() Mps
- type PushLogin
- type PushLoginResponse
- type RecommendInfo
- type Ret
- type RetryLoginOption
- type RevokeMsg
- type ScanLogin
- type Selector
- type Self
- func (s *Self) AddFriendIntoManyGroups(friend *Friend, groups ...*Group) error
- func (s *Self) AddFriendsIntoGroup(group *Group, friends ...*Friend) error
- func (s *Self) Bot() *Bot
- func (s *Self) ChkFrdGrpMpNil() bool
- func (s *Self) ContactList() Members
- func (s *Self) CreateGroup(topic string, friends ...*Friend) (*Group, error)
- func (s *Self) FileHelper() *Friend
- func (s *Self) ForwardMessageToFriends(msg *SentMessage, delay time.Duration, friends ...*Friend) error
- func (s *Self) ForwardMessageToGroups(msg *SentMessage, delay time.Duration, groups ...*Group) error
- func (s *Self) Friends(update ...bool) (Friends, error)
- func (s *Self) Groups(update ...bool) (Groups, error)
- func (s *Self) ID() int64
- func (s *Self) MPSubscribeList() []*MPSubscribeMsg
- func (s *Self) Members(update ...bool) (Members, error)
- func (s *Self) Mps(update ...bool) (Mps, error)
- func (s *Self) RemoveMemberFromGroup(group *Group, members Members) error
- func (s *Self) RenameGroup(group *Group, newName string) error
- func (s *Self) RevokeMessage(msg *SentMessage) error
- func (s *Self) SendEmoticonToFriend(friend *Friend, md5 string, file io.Reader) (*SentMessage, error)
- func (s *Self) SendEmoticonToFriends(md5 string, file io.Reader, delay time.Duration, friends ...*Friend) error
- func (s *Self) SendEmoticonToGroup(group *Group, md5 string, file io.Reader) (*SentMessage, error)
- func (s *Self) SendEmoticonToGroups(md5 string, file io.Reader, delay time.Duration, groups ...*Group) error
- func (s *Self) SendEmoticonToMp(mp *Mp, md5 string, file io.Reader) (*SentMessage, error)
- func (s *Self) SendFileToFriend(friend *Friend, file io.Reader) (*SentMessage, error)
- func (s *Self) SendFileToFriends(file io.Reader, delay time.Duration, friends ...*Friend) error
- func (s *Self) SendFileToGroup(group *Group, file io.Reader) (*SentMessage, error)
- func (s *Self) SendFileToGroups(file io.Reader, delay time.Duration, groups ...*Group) error
- func (s *Self) SendFileToMp(mp *Mp, file io.Reader) (*SentMessage, error)
- func (s *Self) SendImageToFriend(friend *Friend, file io.Reader) (*SentMessage, error)
- func (s *Self) SendImageToFriends(img io.Reader, delay time.Duration, friends ...*Friend) error
- func (s *Self) SendImageToGroup(group *Group, file io.Reader) (*SentMessage, error)
- func (s *Self) SendImageToGroups(img io.Reader, delay time.Duration, groups ...*Group) error
- func (s *Self) SendImageToMp(mp *Mp, file io.Reader) (*SentMessage, error)
- func (s *Self) SendTextToFriend(friend *Friend, text string) (*SentMessage, error)
- func (s *Self) SendTextToFriends(text string, delay time.Duration, friends ...*Friend) error
- func (s *Self) SendTextToGroup(group *Group, text string) (*SentMessage, error)
- func (s *Self) SendTextToGroups(text string, delay time.Duration, groups ...*Group) error
- func (s *Self) SendTextToMp(mp *Mp, text string) (*SentMessage, error)
- func (s *Self) SendVideoToFriend(friend *Friend, file io.Reader) (*SentMessage, error)
- func (s *Self) SendVideoToFriends(video io.Reader, delay time.Duration, friends ...*Friend) error
- func (s *Self) SendVideoToGroup(group *Group, file io.Reader) (*SentMessage, error)
- func (s *Self) SendVideoToGroups(video io.Reader, delay time.Duration, groups ...*Group) error
- func (s *Self) SendVideoToMp(mp *Mp, file io.Reader) (*SentMessage, error)
- func (s *Self) SetRemarkNameToFriend(friend *Friend, remarkName string) error
- func (s *Self) UpdateMembersDetail() error
- type SendMessage
- func NewEmoticonSendMessage(fromUserName, toUserName, md5OrMediaId string) *SendMessage
- func NewMediaSendMessage(msgType MessageType, fromUserName, toUserName, mediaId string) *SendMessage
- func NewSendMessage(msgType MessageType, content, fromUserName, toUserName, mediaId string) *SendMessage
- func NewTextSendMessage(content, fromUserName, toUserName string) *SendMessage
- type SendMessageFunc
- type SentMessage
- func (s *SentMessage) CanRevoke() bool
- func (s *SentMessage) ForwardToFriends(friends ...*Friend) error
- func (s *SentMessage) ForwardToFriendsWithDelay(delay time.Duration, friends ...*Friend) error
- func (s *SentMessage) ForwardToGroups(groups ...*Group) error
- func (s *SentMessage) ForwardToGroupsWithDelay(delay time.Duration, groups ...*Group) error
- func (s *SentMessage) Revoke() error
- type Serializer
- type Session
- type SyncCheckResponse
- type SyncKey
- type UploadResponse
- type User
- func (u *User) AsFriend() (*Friend, bool)
- func (u *User) AsGroup() (*Group, bool)
- func (u *User) AsMP() (*Mp, bool)
- func (u *User) AvatarID() string
- func (u *User) Detail() error
- func (u *User) Equal(user *User) bool
- func (u *User) GetAvatarResponse() (resp *http.Response, err error)
- func (u *User) ID() string
- func (u *User) IsFriend() bool
- func (u *User) IsGroup() bool
- func (u *User) IsMP() bool
- func (u *User) IsPin() bool
- func (u *User) IsSelf() bool
- func (u *User) OrderSymbol() string
- func (u *User) Pin() error
- func (u *User) SaveAvatar(filename string) error
- func (u *User) SaveAvatarWithWriter(writer io.Writer) error
- func (u *User) Self() *Self
- func (u *User) String() string
- func (u *User) UnPin() error
- type UserAgentHook
- type UserDetailItem
- type UserDetailItemList
- type WebInitResponse
- type WebWxBatchContactResponse
- type WebWxContactResponse
- type WebWxSyncResponse
- type WechatDomain
Examples ¶
Constants ¶
const ( MALE = 1 FEMALE = 2 )
性别
const ALL = 0
ALL 跟search函数搭配
friends.Search(openwechat.ALL, )
const (
AppMessage = 6
)
消息类型
const FileHelper = "filehelper"
FileHelper 文件传输助手
const TimeFormat = "Mon Jan 02 2006 15:04:05 GMT+0800 (中国标准时间)"
Variables ¶
var ( // Normal 网页版微信模式 Normal = withMode(normal) // Desktop 桌面微信模式 Desktop = withMode(desktop) )
btw, 这两个变量已经变了4回了, 但是为了兼容以前的代码, 还是得想着法儿让用户无感知的更新
var ( // ErrForbidden 禁止当前账号登录 ErrForbidden = errors.New("login forbidden") // ErrInvalidStorage define invalid storage error ErrInvalidStorage = errors.New("invalid storage") // NetworkErr define wechat network error NetworkErr = errors.New("wechat network error") // ErrNoSuchUserFoundError define no such user found error ErrNoSuchUserFoundError = errors.New("no such user found") // ErrLoginTimeout define login timeout error ErrLoginTimeout = errors.New("login timeout") // ErrWebWxDataTicketNotFound define webwx_data_ticket not found error ErrWebWxDataTicketNotFound = errors.New("webwx_data_ticket not found") // ErrUserLogout define user logout error ErrUserLogout = errors.New("user logout") )
var DoNothingBotLoginOption = &BaseBotLoginOption{}
DoNothingBotLoginOption 是一个空的 BotLoginOption,表示不做任何操作
var Emoji = struct { Smile string Grimace string Drool string Scowl string CoolGuy string Sob string Shy string Silent string Sleep string Cry string Awkward string Angry string Tongue string Grin string Surprise string Frown string Ruthless string Blush string Scream string Puke string Chuckle string Joyful string Slight string Smug string Hungry string Drowsy string Panic string Sweat string Laugh string Commando string Determined string Scold string Shocked string Shhh string Dizzy string Tormented string Toasted string Skull string Hammer string Wave string Speechless string NosePick string Clap string Shame string Trick string BahL string BahR string Yawn string PoohPooh string Shrunken string TearingUp string Sly string Kiss string Wrath string Whimper string Cleaver string Watermelon string Beer string Basketball string PingPong string Coffee string Rice string Pig string Rose string Wilt string Lips string Heart string BrokenHeart string Cake string Lightning string Bomb string Dagger string Soccer string Ladybug string Poop string Moon string Sun string Gift string Hug string ThumbsUp string ThumbsDown string Shake string Peace string Fight string Beckon string Fist string Pinky string RockOn string Nuhuh string OK string InLove string Blowkiss string Waddle string Tremble string Aaagh string Twirl string Kotow string Dramatic string JumpRope string Surrender string Hooray string Meditate string Smooch string TaiChiL string TaiChiR string Hey string Facepalm string Smirk string Smart string Moue string Yeah string Tea string Packet string Candle string Blessing string Chick string Onlooker string GoForIt string Sweats string OMG string Emm string Respect string Doge string NoProb string MyBad string KeepFighting string Wow string Rich string Broken string Hurt string Sigh string LetMeSee string Awesome string Boring string }{}/* 134 elements not displayed */
Emoji 表情 字段太多了,污染命名空间,封装成struct返回
Functions ¶
func FormatEmoji ¶
func GetFileContentType ¶
GetFileContentType 获取文件上传的类型
func IgnoreNetworkError ¶
IgnoreNetworkError 忽略网络请求的错误
func IsNetworkError ¶
func NewFileHotReloadStorage ¶
func NewFileHotReloadStorage(filename string) io.ReadWriteCloser
NewFileHotReloadStorage implements HotReloadStorage
func NewJsonFileHotReloadStorage
deprecated
func NewJsonFileHotReloadStorage(filename string) io.ReadWriteCloser
Deprecated: use NewFileHotReloadStorage instead 不再单纯以json的格式存储,支持了用户自定义序列化方式
Types ¶
type AppMessageData ¶
type AppMessageData struct { XMLName xml.Name `xml:"msg"` AppMsg struct { Appid string `xml:"appid,attr"` SdkVer string `xml:"sdkver,attr"` Title string `xml:"title"` Des string `xml:"des"` Action string `xml:"action"` Type AppMessageType `xml:"type"` ShowType string `xml:"showtype"` Content string `xml:"content"` URL string `xml:"url"` DataUrl string `xml:"dataurl"` LowUrl string `xml:"lowurl"` LowDataUrl string `xml:"lowdataurl"` RecordItem string `xml:"recorditem"` ThumbUrl string `xml:"thumburl"` MessageAction string `xml:"messageaction"` Md5 string `xml:"md5"` ExtInfo string `xml:"extinfo"` SourceUsername string `xml:"sourceusername"` SourceDisplayName string `xml:"sourcedisplayname"` CommentUrl string `xml:"commenturl"` AppAttach struct { TotalLen string `xml:"totallen"` AttachId string `xml:"attachid"` EmoticonMd5 string `xml:"emoticonmd5"` FileExt string `xml:"fileext"` FileUploadToken string `xml:"fileuploadtoken"` OverwriteNewMsgId string `xml:"overwrite_newmsgid"` FileKey string `xml:"filekey"` CdnAttachUrl string `xml:"cdnattachurl"` AesKey string `xml:"aeskey"` EncryVer string `xml:"encryver"` } `xml:"appattach"` WeAppInfo struct { PagePath string `xml:"pagepath"` Username string `xml:"username"` Appid string `xml:"appid"` AppServiceType string `xml:"appservicetype"` } `xml:"weappinfo"` WebSearch string `xml:"websearch"` } `xml:"appmsg"` FromUsername string `xml:"fromusername"` Scene string `xml:"scene"` AppInfo struct { Version string `xml:"version"` AppName string `xml:"appname"` } `xml:"appinfo"` CommentUrl string `xml:"commenturl"` }
AppMessageData 获取APP消息的正文 See https://github.com/eatmoreapple/openwechat/issues/62
func (*AppMessageData) IsArticle ¶
func (a *AppMessageData) IsArticle() bool
IsArticle 判断当前的消息类型是否为文章
func (*AppMessageData) IsFromApplet ¶
func (a *AppMessageData) IsFromApplet() bool
IsFromApplet 判断当前的消息类型是否来自小程序
type AppMessageType ¶
type AppMessageType int
AppMessageType 以Go惯用形式定义了PC微信所有的官方App消息类型。
const ( AppMsgTypeText AppMessageType = 1 // 文本消息 AppMsgTypeImg AppMessageType = 2 // 图片消息 AppMsgTypeAudio AppMessageType = 3 // 语音消息 AppMsgTypeVideo AppMessageType = 4 // 视频消息 AppMsgTypeUrl AppMessageType = 5 // 文章消息 AppMsgTypeAttach AppMessageType = 6 // 附件消息 AppMsgTypeOpen AppMessageType = 7 // Open AppMsgTypeEmoji AppMessageType = 8 // 表情消息 AppMsgTypeVoiceRemind AppMessageType = 9 // VoiceRemind AppMsgTypeScanGood AppMessageType = 10 // ScanGood AppMsgTypeGood AppMessageType = 13 // Good AppMsgTypeEmotion AppMessageType = 15 // Emotion AppMsgTypeCardTicket AppMessageType = 16 // 名片消息 AppMsgTypeTransfers AppMessageType = 2000 // 转账消息 AppMsgTypeRedEnvelopes AppMessageType = 2001 // 红包消息 AppMsgTypeReaderType AppMessageType = 100001 //自定义的消息 )
func (AppMessageType) String ¶
func (i AppMessageType) String() string
type BaseBotLoginOption ¶
type BaseBotLoginOption struct{}
func (BaseBotLoginOption) OnSuccess ¶
func (BaseBotLoginOption) OnSuccess(_ *Bot) error
func (BaseBotLoginOption) Prepare ¶
func (BaseBotLoginOption) Prepare(_ *Bot)
type BaseRequest ¶
BaseRequest 初始的请求信息 几乎所有的请求都要携带该参数
type BaseResponse ¶
BaseResponse 大部分返回对象都携带该信息
func (BaseResponse) Err ¶
func (b BaseResponse) Err() error
func (BaseResponse) Ok ¶
func (b BaseResponse) Ok() bool
type Bot ¶
type Bot struct { ScanCallBack func(body CheckLoginResponse) // 扫码回调,可获取扫码用户的头像 LoginCallBack func(body CheckLoginResponse) // 登陆回调 LogoutCallBack func(bot *Bot) // 退出回调 UUIDCallback func(uuid string) // 获取UUID的回调函数 SyncCheckCallback func(resp SyncCheckResponse) // 心跳回调 MessageHandler MessageHandler // 获取消息成功的handle MessageErrorHandler MessageErrorHandler // 获取消息发生错误的handle, 返回err == nil 则尝试继续监听 Serializer Serializer // 序列化器, 默认为json Caller *Caller Storage *Session // contains filtered or unexported fields }
func Default ¶
func Default(prepares ...BotPreparer) *Bot
func DefaultBot ¶
func DefaultBot(prepares ...BotPreparer) *Bot
DefaultBot 默认的Bot的构造方法, mode不传入默认为 openwechat.Normal,详情见mode
bot := openwechat.DefaultBot(openwechat.Desktop)
func (*Bot) DumpHotReloadStorage ¶
DumpHotReloadStorage 写入HotReloadStorage
func (*Bot) GetCurrentUser ¶
GetCurrentUser 获取当前的用户
self, err := bot.GetCurrentUser() if err != nil { return } fmt.Println(self.NickName)
func (*Bot) HotLogin ¶
func (b *Bot) HotLogin(storage HotReloadStorage, opts ...BotLoginOption) error
HotLogin 热登录,可实现在单位时间内免重复扫码登录 热登录需要先扫码登录一次才可以进行热登录
func (*Bot) PushLogin ¶
func (b *Bot) PushLogin(storage HotReloadStorage, opts ...BotLoginOption) error
PushLogin 免扫码登录 免扫码登录需要先扫码登录一次才可以进行扫码登录
type BotLoginOption ¶
func HotLoginWithRetry
deprecated
func HotLoginWithRetry(flag bool) BotLoginOption
Deprecated: 请使用 NewRetryLoginOption 代替 HotLoginWithRetry 热登录模式,如果登录失败会重试
func NewRetryLoginOption ¶
func NewRetryLoginOption() BotLoginOption
func PushLoginWithRetry
deprecated
func PushLoginWithRetry(flag bool) BotLoginOption
Deprecated: 请使用 NewRetryLoginOption 代替 PushLoginWithRetry 免扫码登录模式,如果登录失败会重试
type BotOptionGroup ¶
type BotOptionGroup []BotLoginOption
BotOptionGroup 是一个 BotLoginOption 的集合 用于将多个 BotLoginOption 组合成一个 BotLoginOption
func (BotOptionGroup) OnError ¶
func (g BotOptionGroup) OnError(b *Bot, err error) error
OnError 实现了 BotLoginOption 接口
func (BotOptionGroup) OnSuccess ¶
func (g BotOptionGroup) OnSuccess(b *Bot) error
OnSuccess 实现了 BotLoginOption 接口
func (BotOptionGroup) Prepare ¶
func (g BotOptionGroup) Prepare(bot *Bot)
Prepare 实现了 BotLoginOption 接口
type BotPreparer ¶
type BotPreparer interface {
Prepare(*Bot)
}
func WithContextOption ¶
func WithContextOption(ctx context.Context) BotPreparer
WithContextOption 是一个 BotPreparerFunc,用于设置 Bot 的 context
func WithDeviceID ¶
func WithDeviceID(deviceId string) BotPreparer
WithDeviceID 是一个 BotPreparerFunc,用于设置 Bot 的 设备 id
func WithUUIDOption ¶
func WithUUIDOption(uuid string) BotPreparer
WithUUIDOption 是一个 BotPreparerFunc,用于设置 Bot 的 登录 uuid
type BotPreparerFunc ¶
type BotPreparerFunc func(*Bot)
func (BotPreparerFunc) Prepare ¶
func (f BotPreparerFunc) Prepare(b *Bot)
type Caller ¶
type Caller struct {
Client *Client
}
Caller 调用请求和解析请求 上层模块可以直接获取封装后的请求结果
func (*Caller) AddFriendIntoChatRoom ¶
func (c *Caller) AddFriendIntoChatRoom(ctx context.Context, opt *CallerAddFriendIntoChatRoomOptions) error
AddFriendIntoChatRoom 拉好友入群
func (*Caller) CheckLogin ¶
CheckLogin 检查是否登录成功
func (*Caller) GetLoginInfo ¶
GetLoginInfo 获取登录信息
func (*Caller) GetLoginUUID ¶
GetLoginUUID 获取登录的uuid
func (*Caller) RemoveFriendFromChatRoom ¶
func (c *Caller) RemoveFriendFromChatRoom(ctx context.Context, opt *CallerRemoveFriendFromChatRoomOptions) error
RemoveFriendFromChatRoom 从群聊中移除用户
func (*Caller) SyncCheck ¶
func (c *Caller) SyncCheck(ctx context.Context, opt *CallerSyncCheckOptions) (*SyncCheckResponse, error)
SyncCheck 异步获取是否有新的消息
func (*Caller) UploadMedia ¶
func (c *Caller) UploadMedia(ctx context.Context, file *os.File, opt *CallerUploadMediaOptions) (*UploadResponse, error)
func (*Caller) WebInit ¶
func (c *Caller) WebInit(ctx context.Context, request *BaseRequest) (*WebInitResponse, error)
WebInit 获取初始化信息
func (*Caller) WebWxBatchGetContact ¶
func (c *Caller) WebWxBatchGetContact(ctx context.Context, members Members, request *BaseRequest) (Members, error)
WebWxBatchGetContact 获取联系人的详情 注: Members参数的长度不要大于50
func (*Caller) WebWxCreateChatRoom ¶
func (c *Caller) WebWxCreateChatRoom(ctx context.Context, opt *CallerWebWxCreateChatRoomOptions) (*Group, error)
WebWxCreateChatRoom 创建群聊
func (*Caller) WebWxGetContact ¶
WebWxGetContact 获取所有的联系人
func (*Caller) WebWxOplog ¶
func (c *Caller) WebWxOplog(ctx context.Context, opt *CallerWebWxOplogOptions) error
WebWxOplog 修改用户备注接口
func (*Caller) WebWxPushLogin ¶
WebWxPushLogin 免扫码登陆接口
func (*Caller) WebWxRelationPin ¶
func (c *Caller) WebWxRelationPin(ctx context.Context, opt *CallerWebWxRelationPinOptions) error
WebWxRelationPin 将联系人是否置顶
func (*Caller) WebWxRenameChatRoom ¶
func (c *Caller) WebWxRenameChatRoom(ctx context.Context, opt *CallerWebWxRenameChatRoomOptions) error
WebWxRenameChatRoom 群组重命名
func (*Caller) WebWxRevokeMsg ¶
func (c *Caller) WebWxRevokeMsg(ctx context.Context, msg *SentMessage, request *BaseRequest) error
WebWxRevokeMsg 撤回消息操作
func (*Caller) WebWxSendAppMsg ¶
func (c *Caller) WebWxSendAppMsg(ctx context.Context, msg *SendMessage, req *BaseRequest) (*SentMessage, error)
WebWxSendAppMsg 发送媒体消息
func (*Caller) WebWxSendEmoticon ¶
func (c *Caller) WebWxSendEmoticon(ctx context.Context, md5 string, reader io.Reader, opt *CallerWebWxSendAppMsgOptions) (*SentMessage, error)
WebWxSendEmoticon 发送表情接口
func (*Caller) WebWxSendFile ¶
func (c *Caller) WebWxSendFile(ctx context.Context, reader io.Reader, opt *CallerWebWxSendFileOptions) (*SentMessage, error)
func (*Caller) WebWxSendImageMsg ¶
func (c *Caller) WebWxSendImageMsg(ctx context.Context, reader io.Reader, opt *CallerWebWxSendImageMsgOptions) (*SentMessage, error)
WebWxSendImageMsg 发送图片消息接口
func (*Caller) WebWxSendMsg ¶
func (c *Caller) WebWxSendMsg(ctx context.Context, opt *CallerWebWxSendMsgOptions) (*SentMessage, error)
WebWxSendMsg 发送消息接口
func (*Caller) WebWxSendVideoMsg ¶
func (c *Caller) WebWxSendVideoMsg(ctx context.Context, reader io.Reader, opt *CallerWebWxSendAppMsgOptions) (*SentMessage, error)
func (*Caller) WebWxStatusAsRead ¶
func (c *Caller) WebWxStatusAsRead(ctx context.Context, opt *CallerWebWxStatusAsReadOptions) error
WebWxStatusAsRead 将消息设置为已读
func (*Caller) WebWxStatusNotify ¶
func (c *Caller) WebWxStatusNotify(ctx context.Context, opt *CallerWebWxStatusNotifyOptions) error
WebWxStatusNotify 通知手机已登录
func (*Caller) WebWxSync ¶
func (c *Caller) WebWxSync(ctx context.Context, opt *CallerWebWxSyncOptions) (*WebWxSyncResponse, error)
WebWxSync 获取新的消息接口
func (*Caller) WebWxVerifyUser ¶
func (c *Caller) WebWxVerifyUser(ctx context.Context, opt *CallerWebWxVerifyUserOptions) error
WebWxVerifyUser 同意加好友请求
type CallerAddFriendIntoChatRoomOptions ¶
type CallerAddFriendIntoChatRoomOptions struct { BaseRequest *BaseRequest LoginInfo *LoginInfo Group *Group GroupLength int Friends []*Friend }
type CallerCommonOptions ¶
type CallerCommonOptions struct { BaseRequest *BaseRequest WebInitResponse *WebInitResponse LoginInfo *LoginInfo }
type CallerRemoveFriendFromChatRoomOptions ¶
type CallerRemoveFriendFromChatRoomOptions struct { BaseRequest *BaseRequest LoginInfo *LoginInfo Group *Group Members []*User }
type CallerSyncCheckOptions ¶
type CallerSyncCheckOptions CallerCommonOptions
type CallerUploadMediaCommonOptions ¶
type CallerUploadMediaCommonOptions struct { FromUserName string ToUserName string BaseRequest *BaseRequest LoginInfo *LoginInfo }
type CallerUploadMediaOptions ¶
type CallerUploadMediaOptions struct { FromUserName string ToUserName string BaseRequest *BaseRequest LoginInfo *LoginInfo }
type CallerWebWxCreateChatRoomOptions ¶
type CallerWebWxCreateChatRoomOptions struct { BaseRequest *BaseRequest LoginInfo *LoginInfo Topic string Friends Friends }
type CallerWebWxOplogOptions ¶
type CallerWebWxOplogOptions struct { RemarkName string ToUserName string BaseRequest *BaseRequest }
type CallerWebWxRelationPinOptions ¶
type CallerWebWxRelationPinOptions struct { BaseRequest *BaseRequest User *User Op uint8 }
type CallerWebWxRenameChatRoomOptions ¶
type CallerWebWxRenameChatRoomOptions struct { NewTopic string BaseRequest *BaseRequest LoginInfo *LoginInfo Group *Group }
type CallerWebWxSendAppMsgOptions ¶
type CallerWebWxSendAppMsgOptions CallerUploadMediaCommonOptions
type CallerWebWxSendFileOptions ¶
type CallerWebWxSendFileOptions CallerUploadMediaCommonOptions
type CallerWebWxSendImageMsgOptions ¶
type CallerWebWxSendImageMsgOptions CallerUploadMediaCommonOptions
type CallerWebWxSendMsgOptions ¶
type CallerWebWxSendMsgOptions struct { LoginInfo *LoginInfo BaseRequest *BaseRequest Message *SendMessage }
type CallerWebWxStatusAsReadOptions ¶
type CallerWebWxStatusAsReadOptions struct { BaseRequest *BaseRequest LoginInfo *LoginInfo Message *Message }
type CallerWebWxStatusNotifyOptions ¶
type CallerWebWxStatusNotifyOptions CallerCommonOptions
type CallerWebWxSyncOptions ¶
type CallerWebWxSyncOptions CallerCommonOptions
type CallerWebWxVerifyUserOptions ¶
type CallerWebWxVerifyUserOptions struct { VerifyContent string RecommendInfo RecommendInfo BaseRequest *BaseRequest LoginInfo *LoginInfo }
type Card ¶
type Card struct { XMLName xml.Name `xml:"msg"` ImageStatus int `xml:"imagestatus,attr"` Scene int `xml:"scene,attr"` Sex int `xml:"sex,attr"` Certflag int `xml:"certflag,attr"` BigHeadImgUrl string `xml:"bigheadimgurl,attr"` SmallHeadImgUrl string `xml:"smallheadimgurl,attr"` UserName string `xml:"username,attr"` NickName string `xml:"nickname,attr"` ShortPy string `xml:"shortpy,attr"` Alias string `xml:"alias,attr"` // Note: 这个是名片用户的微信号 Province string `xml:"province,attr"` City string `xml:"city,attr"` Sign string `xml:"sign,attr"` Certinfo string `xml:"certinfo,attr"` BrandIconUrl string `xml:"brandIconUrl,attr"` BrandHomeUr string `xml:"brandHomeUr,attr"` BrandSubscriptConfigUrl string `xml:"brandSubscriptConfigUrl,attr"` BrandFlags string `xml:"brandFlags,attr"` RegionCode string `xml:"regionCode,attr"` }
Card 名片消息内容
type CheckLoginResponse ¶
type CheckLoginResponse []byte
CheckLoginResponse 检查登录状态的响应body
func (CheckLoginResponse) Avatar ¶
func (c CheckLoginResponse) Avatar() (string, error)
Avatar 获取扫码后的用户头像, base64编码
func (CheckLoginResponse) Code ¶
func (c CheckLoginResponse) Code() (LoginCode, error)
Code 获取当前的登录检查状态的代码
func (CheckLoginResponse) RedirectURL ¶
func (c CheckLoginResponse) RedirectURL() (*url.URL, error)
RedirectURL 重定向的URL
type Client ¶
type Client struct { // Domain 微信服务器请求域名 // 这个参数会在登录成功后被赋值 // 之后所有的请求都会使用这个域名 // 在登录热登录和扫码登录时会被重新赋值 Domain WechatDomain // HttpHooks 请求上下文钩子 HttpHooks HttpHooks // MaxRetryTimes 最大重试次数 MaxRetryTimes int // contains filtered or unexported fields }
Client http请求客户端 客户端需要维持Session会话
func (*Client) AddHttpHook ¶
AddHttpHook 添加一个请求上下文钩子
func (*Client) AddMemberIntoChatRoom ¶
func (c *Client) AddMemberIntoChatRoom(ctx context.Context, opt *ClientAddMemberIntoChatRoomOption) (*http.Response, error)
AddMemberIntoChatRoom 添加用户进群聊
func (*Client) CheckLogin ¶
CheckLogin 检查是否登录
func (*Client) GetLoginInfo ¶
GetLoginInfo 请求获取LoginInfo
func (*Client) GetLoginQrcode ¶
GetLoginQrcode 获取登录的二维吗
func (*Client) GetLoginUUID ¶
GetLoginUUID 获取登录的uuid
func (*Client) HTTPClient ¶
HTTPClient 返回http.Client 用于自定义http.Client的行为,如设置超时时间、设置代理、设置TLS配置等
func (*Client) InviteMemberIntoChatRoom ¶
func (c *Client) InviteMemberIntoChatRoom(ctx context.Context, opt *ClientAddMemberIntoChatRoomOption) (*http.Response, error)
InviteMemberIntoChatRoom 邀请用户进群聊
func (*Client) RemoveMemberFromChatRoom ¶
func (c *Client) RemoveMemberFromChatRoom(ctx context.Context, opt *ClientRemoveMemberFromChatRoomOption) (*http.Response, error)
RemoveMemberFromChatRoom 从群聊中移除用户
func (*Client) SetCookieJar ¶
SetCookieJar 设置cookieJar 这里限制了cookieJar必须是Jar类型 否则进行cookie序列化的时候因为字段的私有性无法进行所有字段的导出
func (*Client) SyncCheck ¶
func (c *Client) SyncCheck(ctx context.Context, opt *ClientSyncCheckOptions) (*http.Response, error)
SyncCheck 异步检查是否有新的消息返回
func (*Client) WebWxBatchGetContact ¶
func (c *Client) WebWxBatchGetContact(ctx context.Context, members Members, request *BaseRequest) (*http.Response, error)
WebWxBatchGetContact 获取联系人详情
func (*Client) WebWxCreateChatRoom ¶
func (c *Client) WebWxCreateChatRoom(ctx context.Context, opt *ClientWebWxCreateChatRoomOption) (*http.Response, error)
WebWxCreateChatRoom 创建群聊
func (*Client) WebWxGetContact ¶
func (c *Client) WebWxGetContact(ctx context.Context, sKey string, reqs int64) (*http.Response, error)
WebWxGetContact 获取联系人信息
func (*Client) WebWxGetHeadImg ¶
WebWxGetHeadImg 获取用户的头像
func (*Client) WebWxGetMedia ¶
func (c *Client) WebWxGetMedia(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
WebWxGetMedia 获取文件消息的文件响应
func (*Client) WebWxGetMsgImg ¶
func (c *Client) WebWxGetMsgImg(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
WebWxGetMsgImg 获取图片消息的图片响应
func (*Client) WebWxGetVideo ¶
func (c *Client) WebWxGetVideo(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
WebWxGetVideo 获取视频消息的视频响应
func (*Client) WebWxGetVoice ¶
func (c *Client) WebWxGetVoice(ctx context.Context, msg *Message, info *LoginInfo) (*http.Response, error)
WebWxGetVoice 获取语音消息的语音响应
func (*Client) WebWxOplog ¶
func (c *Client) WebWxOplog(ctx context.Context, opt *ClientWebWxOplogOption) (*http.Response, error)
WebWxOplog 用户重命名接口
func (*Client) WebWxPushLogin ¶
WebWxPushLogin 免扫码登陆接口
func (*Client) WebWxRelationPin ¶
func (c *Client) WebWxRelationPin(ctx context.Context, opt *ClientWebWxRelationPinOption) (*http.Response, error)
WebWxRelationPin 联系人置顶接口
func (*Client) WebWxRenameChatRoom ¶
func (c *Client) WebWxRenameChatRoom(ctx context.Context, opt *ClientWebWxRenameChatRoomOption) (*http.Response, error)
WebWxRenameChatRoom 群组重命名接口
func (*Client) WebWxRevokeMsg ¶
func (c *Client) WebWxRevokeMsg(ctx context.Context, msg *SentMessage, request *BaseRequest) (*http.Response, error)
WebWxRevokeMsg 撤回消息
func (*Client) WebWxSendAppMsg ¶
func (c *Client) WebWxSendAppMsg(ctx context.Context, msg *SendMessage, request *BaseRequest) (*http.Response, error)
WebWxSendAppMsg 发送文件信息
func (*Client) WebWxSendEmoticon ¶
func (c *Client) WebWxSendEmoticon(ctx context.Context, opt *ClientWebWxSendMsgOptions) (*http.Response, error)
WebWxSendMsg 发送表情消息
func (*Client) WebWxSendMsg ¶
func (c *Client) WebWxSendMsg(ctx context.Context, opt *ClientWebWxSendMsgOptions) (*http.Response, error)
WebWxSendMsg 发送文本消息
func (*Client) WebWxSendMsgImg ¶
func (c *Client) WebWxSendMsgImg(ctx context.Context, opt *ClientWebWxSendMsgOptions) (*http.Response, error)
WebWxSendMsgImg 发送图片 这个接口依赖上传文件的接口 发送的图片必须是已经成功上传的图片
func (*Client) WebWxSendVideoMsg ¶
func (c *Client) WebWxSendVideoMsg(ctx context.Context, request *BaseRequest, msg *SendMessage) (*http.Response, error)
WebWxSendVideoMsg 发送视频消息接口
func (*Client) WebWxStatusAsRead ¶
func (*Client) WebWxStatusNotify ¶
func (c *Client) WebWxStatusNotify(ctx context.Context, opt *ClientWebWxStatusNotifyOptions) (*http.Response, error)
WebWxStatusNotify 通知手机已登录
func (*Client) WebWxSync ¶
func (c *Client) WebWxSync(ctx context.Context, opt *ClientWebWxSyncOptions) (*http.Response, error)
WebWxSync 获取消息接口
func (*Client) WebWxUploadMediaByChunk ¶
func (c *Client) WebWxUploadMediaByChunk(ctx context.Context, file *os.File, opt *ClientWebWxUploadMediaByChunkOptions) (*http.Response, error)
WebWxUploadMediaByChunk 分块上传文件 TODO 优化掉这个函数
func (*Client) WebWxVerifyUser ¶
func (c *Client) WebWxVerifyUser(ctx context.Context, opt *ClientWebWxVerifyUserOption) (*http.Response, error)
WebWxVerifyUser 添加用户为好友接口
type ClientAddMemberIntoChatRoomOption ¶
type ClientAddMemberIntoChatRoomOption struct { Group string GroupLength int InviteMemberList []string BaseRequest *BaseRequest LoginInfo *LoginInfo }
type ClientCommonOptions ¶
type ClientCommonOptions struct { BaseRequest *BaseRequest WebInitResponse *WebInitResponse LoginInfo *LoginInfo }
type ClientRemoveMemberFromChatRoomOption ¶
type ClientRemoveMemberFromChatRoomOption struct { Group string DelMemberList []string BaseRequest *BaseRequest LoginInfo *LoginInfo }
type ClientSyncCheckOptions ¶
type ClientSyncCheckOptions ClientCommonOptions
type ClientWebWxCreateChatRoomOption ¶
type ClientWebWxCreateChatRoomOption struct { Request *BaseRequest LoginInfo *LoginInfo Topic string Friends []string }
type ClientWebWxOplogOption ¶
type ClientWebWxOplogOption struct { RemarkName string UserName string BaseRequest *BaseRequest }
type ClientWebWxRelationPinOption ¶
type ClientWebWxRelationPinOption struct { Request *BaseRequest Op uint8 RemarkName string UserName string }
type ClientWebWxRenameChatRoomOption ¶
type ClientWebWxRenameChatRoomOption struct { Request *BaseRequest LoginInfo *LoginInfo NewTopic string Group string }
type ClientWebWxSendMsgOptions ¶
type ClientWebWxSendMsgOptions struct { LoginInfo *LoginInfo BaseRequest *BaseRequest Message *SendMessage }
type ClientWebWxStatusAsReadOption ¶
type ClientWebWxStatusAsReadOption struct { LoginInfo *LoginInfo Request *BaseRequest Message *Message }
type ClientWebWxStatusNotifyOptions ¶
type ClientWebWxStatusNotifyOptions ClientCommonOptions
type ClientWebWxSyncOptions ¶
type ClientWebWxSyncOptions ClientCommonOptions
type ClientWebWxUploadMediaByChunkOptions ¶
type ClientWebWxUploadMediaByChunkOptions struct { FromUserName string ToUserName string BaseRequest *BaseRequest LoginInfo *LoginInfo }
type ClientWebWxVerifyUserOption ¶
type ClientWebWxVerifyUserOption struct { RecommendInfo RecommendInfo VerifyContent string BaseRequest *BaseRequest LoginInfo *LoginInfo }
type CookieGroup ¶
CookieGroup is a group of cookies
type Friend ¶
type Friend struct{ *User }
func NewFriendHelper ¶
NewFriendHelper 创建一个文件传输助手 文件传输助手的微信身份标识符永远是filehelper
func (*Friend) AddIntoGroup ¶
AddIntoGroup 拉该好友入群
func (*Friend) SendFile ¶
func (f *Friend) SendFile(file io.Reader) (*SentMessage, error)
SendFile 发送文件消息
func (*Friend) SendImage ¶
func (f *Friend) SendImage(file io.Reader) (*SentMessage, error)
SendImage 发送图片消息
func (*Friend) SendText ¶
func (f *Friend) SendText(content string) (*SentMessage, error)
SendText 发送文本消息
func (*Friend) SendVideo ¶
func (f *Friend) SendVideo(file io.Reader) (*SentMessage, error)
SendVideo 发送视频消息
func (*Friend) SetRemarkName ¶
SetRemarkName 重命名当前好友 Deprecated
type FriendAddMessage ¶
type FriendAddMessage struct { XMLName xml.Name `xml:"msg"` Shortpy string `xml:"shortpy,attr"` ImageStatus int `xml:"imagestatus,attr"` Scene int `xml:"scene,attr"` PerCard int `xml:"percard,attr"` Sex int `xml:"sex,attr"` AlbumFlag int `xml:"albumflag,attr"` AlbumStyle int `xml:"albumstyle,attr"` SnsFlag int `xml:"snsflag,attr"` Opcode int `xml:"opcode,attr"` FromUserName string `xml:"fromusername,attr"` EncryptUserName string `xml:"encryptusername,attr"` FromNickName string `xml:"fromnickname,attr"` Content string `xml:"content,attr"` Country string `xml:"country,attr"` Province string `xml:"province,attr"` City string `xml:"city,attr"` Sign string `xml:"sign,attr"` Alias string `xml:"alias,attr"` WeiBo string `xml:"weibo,attr"` AlbumBgImgId string `xml:"albumbgimgid,attr"` SnsBgImgId string `xml:"snsbgimgid,attr"` SnsBgObjectId string `xml:"snsbgobjectid,attr"` MHash string `xml:"mhash,attr"` MFullHash string `xml:"mfullhash,attr"` BigHeadImgUrl string `xml:"bigheadimgurl,attr"` SmallHeadImgUrl string `xml:"smallheadimgurl,attr"` Ticket string `xml:"ticket,attr"` GoogleContact string `xml:"googlecontact,attr"` QrTicket string `xml:"qrticket,attr"` ChatRoomUserName string `xml:"chatroomusername,attr"` SourceUserName string `xml:"sourceusername,attr"` CardVersion string `xml:"cardversion,attr"` BrandList struct { Count int `xml:"count,attr"` Ver int64 `xml:"ver,attr"` } `xml:"brandlist"` }
FriendAddMessage 好友添加消息信息内容
type Friends ¶
type Friends []*Friend
func (Friends) BroadcastTextToFriendsByRandomTime ¶
BroadcastTextToFriendsByRandomTime 向所有好友随机时间间隔发送消息。
func (Friends) GetByNickName ¶
GetByNickName 根据nickname查询一个Friend
func (Friends) GetByRemarkName ¶
GetByRemarkName 根据remarkName查询一个Friend
func (Friends) GetByUsername ¶
GetByUsername 根据username查询一个Friend
func (Friends) SearchByNickName ¶
SearchByNickName 根据昵称查找好友
func (Friends) SearchByRemarkName ¶
SearchByRemarkName 根据备注查找好友
func (Friends) SearchByUserName ¶
SearchByUserName 根据用户名查找好友
type Group ¶
type Group struct{ *User }
func (*Group) AddFriendsIn ¶
AddFriendsIn 拉好友入群
func (*Group) RemoveMembers ¶
RemoveMembers 从群聊中移除用户 Deprecated 无论是网页版,还是程序上都不起作用
func (*Group) SearchMemberByUsername ¶
SearchMemberByUsername 根据用户名查找群成员
func (*Group) SendFile ¶
func (g *Group) SendFile(file io.Reader) (*SentMessage, error)
SendFile 发送文件给当前的群组
func (*Group) SendImage ¶
func (g *Group) SendImage(file io.Reader) (*SentMessage, error)
SendImage 发行图片消息给当前的群组
func (*Group) SendText ¶
func (g *Group) SendText(content string) (*SentMessage, error)
SendText 发行文本消息给当前的群组
type Groups ¶
type Groups []*Group
func (Groups) GetByNickName ¶
GetByNickName 根据nickname查询一个Group
func (Groups) GetByUsername ¶
GetByUsername 根据username查询一个Group
func (Groups) SearchByNickName ¶
SearchByNickName 根据昵称查找群组
func (Groups) SearchByUserName ¶
SearchByUserName 根据用户名查找群组
type HotReloadStorageItem ¶
type HotReloadStorageItem struct { Jar *Jar BaseRequest *BaseRequest LoginInfo *LoginInfo WechatDomain WechatDomain SyncKey *SyncKey UUID string }
type HttpHook ¶
type HttpHook interface { // BeforeRequest 将在请求之前调用 BeforeRequest(req *http.Request) // AfterRequest 将在请求之后调用,无论请求成功与否 AfterRequest(response *http.Response, err error) }
HttpHook 请求上下文钩子
type HttpHooks ¶
type HttpHooks []HttpHook
HttpHooks 请求上下文钩子列表
func (HttpHooks) AfterRequest ¶
AfterRequest 将在请求之后调用,无论请求成功与否
func (HttpHooks) BeforeRequest ¶
BeforeRequest 将在请求之前调用
type Jar ¶
type Jar struct { PsList cookiejar.PublicSuffixList // Entries is a set of entries, keyed by their eTLD+1 and subkeyed by // their name/Domain/path. Entries map[string]map[string]entry // nextSeqNum is the next sequence number assigned to a new cookie // created SetCookies. NextSeqNum uint64 // contains filtered or unexported fields }
Jar is a struct which as same as cookiejar.Jar cookiejar.Jar's fields are private, so we can't use it directly
func (*Jar) AsCookieJar ¶
AsCookieJar unsafe convert to http.CookieJar
type JsonSerializer ¶
type JsonSerializer struct{}
JsonSerializer is a serializer for json.
type LoginChecker ¶
type LoginChecker struct { Bot *Bot Tip string UUIDCallback func(uuid string) LoginCallBack func(body CheckLoginResponse) ScanCallBack func(body CheckLoginResponse) }
func (*LoginChecker) CheckLogin ¶
func (l *LoginChecker) CheckLogin() error
type LoginInfo ¶
type LoginInfo struct { Ret int `xml:"ret"` WxUin int64 `xml:"wxuin"` IsGrayScale int `xml:"isgrayscale"` Message string `xml:"message"` SKey string `xml:"skey"` WxSid string `xml:"wxsid"` PassTicket string `xml:"pass_ticket"` }
LoginInfo 登录信息
type MPSubscribeMsg ¶
type MPSubscribeMsg struct { MPArticleCount int Time int64 UserName string NickName string MPArticleList []*MPArticle }
MPSubscribeMsg 公众号的订阅信息
type MatchFunc ¶
MatchFunc 消息匹配函数,返回为true则表示匹配
func MatchFuncList ¶
MatchFuncList 将多个MatchFunc封装成一个MatchFunc
func SenderMatchFunc ¶
func SenderMatchFunc(matchFuncs ...MessageSenderMatchFunc) MatchFunc
SenderMatchFunc 抽象的匹配发送者特征的处理函数
dispatcher := NewMessageMatchDispatcher() matchFuncList := MatchFuncList(SenderFriendRequired(), SenderNickNameContainsMatchFunc("多吃点苹果")) dispatcher.RegisterHandler(matchFuncList, func(ctx *MessageContext) { do your own business })
func SenderNickNameContainsMatchFunc ¶
SenderNickNameContainsMatchFunc 根据用户昵称是否包含指定字符串的匹配函数
func SenderNickNameEqualMatchFunc ¶
SenderNickNameEqualMatchFunc 根据用户昵称是否等于指定字符串的匹配函数
func SenderRemakeNameContainsFunc ¶
SenderRemakeNameContainsFunc 根据用户备注名是否包含指定字符串的匹配函数
func SenderRemarkNameEqualMatchFunc ¶
SenderRemarkNameEqualMatchFunc 根据用户备注是否等于指定字符串的匹配函数
type Members ¶
type Members []*User
Members 抽象的用户组
func (Members) GetByNickName ¶
GetByNickName 根据nickname查找用户
func (Members) GetByRemarkName ¶
GetByRemarkName 根据remarkName查找用户
func (Members) GetByUserName ¶
GetByUserName 根据username查找用户
func (Members) SearchByNickName ¶
SearchByNickName 根据昵称查找
func (Members) SearchByRemarkName ¶
SearchByRemarkName 根据备注查找
func (Members) SearchByUserName ¶
SearchByUserName 根据用户名查找
type Message ¶
type Message struct { AppInfo struct { Type int AppID string } AppMsgType AppMessageType HasProductId int ImgHeight int ImgStatus int ImgWidth int ForwardFlag int MsgType MessageType Status int StatusNotifyCode int SubMsgType int VoiceLength int CreateTime int64 NewMsgId int64 PlayLength int64 MediaId string MsgId string EncryFileName string FileName string FileSize string Content string FromUserName string OriContent string StatusNotifyUserName string Ticket string ToUserName string Url string RecommendInfo RecommendInfo Raw []byte `json:"-"` RawContent string `json:"-"` // 消息原始内容 // contains filtered or unexported fields }
func (*Message) FriendAddMessageContent ¶
func (m *Message) FriendAddMessageContent() (*FriendAddMessage, error)
FriendAddMessageContent 获取FriendAddMessageContent内容
func (*Message) GetPicture ¶
GetPicture 获取图片消息的响应
func (*Message) IsComeFromGroup ¶
IsComeFromGroup 判断消息是否来自群组 可能是自己或者别的群员发送
func (*Message) IsFriendAdd ¶
func (*Message) IsLocation ¶
func (*Message) IsPaiYiPai ¶
IsPaiYiPai 判断消息是否为拍一拍 不要问我为什么取名为PaiYiPai,因为我也不知道取啥名字好
func (*Message) IsRealtimeLocation ¶
func (*Message) IsRealtimeLocationStart ¶
func (*Message) IsRealtimeLocationStop ¶
func (*Message) IsReceiveRedPacket ¶
IsReceiveRedPacket 判断当前是否收到红包
func (*Message) IsSelfSendToGroup ¶
IsSelfSendToGroup 判断消息是否由自己发送到群组
func (*Message) IsSendRedPacket ¶
IsSendRedPacket 判断当前是否发出红包
func (*Message) IsSysNotice ¶
func (*Message) IsTransferAccounts ¶
IsTransferAccounts 判断当前的消息是不是微信转账
func (*Message) MediaData ¶
func (m *Message) MediaData() (*AppMessageData, error)
MediaData 获取当前App Message的具体内容
func (*Message) ReplyEmoticon ¶
ReplyEmoticon 回复表情
func (*Message) ReplyFile ¶
func (m *Message) ReplyFile(file io.Reader) (*SentMessage, error)
ReplyFile 回复文件消息
func (*Message) ReplyImage ¶
func (m *Message) ReplyImage(file io.Reader) (*SentMessage, error)
ReplyImage 回复图片消息
func (*Message) ReplyText ¶
func (m *Message) ReplyText(content string) (*SentMessage, error)
ReplyText 回复文本消息
func (*Message) ReplyVideo ¶
func (m *Message) ReplyVideo(file io.Reader) (*SentMessage, error)
ReplyVideo 回复视频消息
func (*Message) SaveFileToLocal ¶
SaveFileToLocal 保存文件到本地
func (*Message) SenderInGroup ¶
SenderInGroup 获取消息在群里面的发送者
func (*Message) WithContext ¶
type MessageContext ¶
type MessageContext struct { *Message // contains filtered or unexported fields }
MessageContext 消息处理上下文对象
func (*MessageContext) Abort ¶
func (c *MessageContext) Abort()
Abort 中断当前消息处理, 不会调用下一个消息处理函数, 但是不会中断当前的处理函数
func (*MessageContext) AbortHandler ¶
func (c *MessageContext) AbortHandler() MessageContextHandler
AbortHandler 获取当前中断的消息处理函数
type MessageContextHandler ¶
type MessageContextHandler func(ctx *MessageContext)
MessageContextHandler 消息处理函数
type MessageContextHandlerGroup ¶
type MessageContextHandlerGroup []MessageContextHandler
type MessageDispatcher ¶
type MessageDispatcher interface {
Dispatch(msg *Message)
}
MessageDispatcher 消息分发处理接口 跟 DispatchMessage 结合封装成 MessageHandler
type MessageErrorHandler ¶
MessageErrorHandler 获取消息时发生了错误的处理函数 参数err为获取消息时发生的错误,返回值为处理后的错误 如果返回nil,则表示忽略该错误,否则将继续传递该错误
type MessageMatchDispatcher ¶
type MessageMatchDispatcher struct {
// contains filtered or unexported fields
}
MessageMatchDispatcher impl MessageDispatcher interface
dispatcher := NewMessageMatchDispatcher() dispatcher.OnText(func(msg *Message){ msg.ReplyText("hello") }) bot := DefaultBot() bot.MessageHandler = DispatchMessage(dispatcher)
func NewMessageMatchDispatcher ¶
func NewMessageMatchDispatcher() *MessageMatchDispatcher
NewMessageMatchDispatcher Constructor
func (*MessageMatchDispatcher) AsMessageHandler ¶
func (m *MessageMatchDispatcher) AsMessageHandler() MessageHandler
AsMessageHandler 将MessageMatchDispatcher转换为MessageHandler
func (*MessageMatchDispatcher) Dispatch ¶
func (m *MessageMatchDispatcher) Dispatch(msg *Message)
Dispatch impl MessageDispatcher 遍历 MessageMatchDispatcher 所有的消息处理函数 获取所有匹配上的函数 执行处理的消息处理方法
func (*MessageMatchDispatcher) OnCard ¶
func (m *MessageMatchDispatcher) OnCard(handlers ...MessageContextHandler)
OnCard 注册处理消息类型为Card的处理函数
func (*MessageMatchDispatcher) OnEmoticon ¶
func (m *MessageMatchDispatcher) OnEmoticon(handlers ...MessageContextHandler)
OnEmoticon 注册处理消息类型为Emoticon的处理函数(表情包)
func (*MessageMatchDispatcher) OnFriend ¶
func (m *MessageMatchDispatcher) OnFriend(handlers ...MessageContextHandler)
OnFriend 注册发送者为好友的处理函数
func (*MessageMatchDispatcher) OnFriendAdd ¶
func (m *MessageMatchDispatcher) OnFriendAdd(handlers ...MessageContextHandler)
OnFriendAdd 注册处理消息类型为FriendAdd的处理函数
func (*MessageMatchDispatcher) OnFriendByNickName ¶
func (m *MessageMatchDispatcher) OnFriendByNickName(nickName string, handlers ...MessageContextHandler)
OnFriendByNickName 注册根据好友昵称是否匹配的消息处理函数
func (*MessageMatchDispatcher) OnFriendByRemarkName ¶
func (m *MessageMatchDispatcher) OnFriendByRemarkName(remarkName string, handlers ...MessageContextHandler)
OnFriendByRemarkName 注册根据好友备注是否匹配的消息处理函数
func (*MessageMatchDispatcher) OnGroup ¶
func (m *MessageMatchDispatcher) OnGroup(handlers ...MessageContextHandler)
OnGroup 注册发送者为群组的处理函数
func (*MessageMatchDispatcher) OnGroupByGroupName ¶
func (m *MessageMatchDispatcher) OnGroupByGroupName(groupName string, handlers ...MessageContextHandler)
OnGroupByGroupName 注册根据群名是否匹配的消息处理函数
func (*MessageMatchDispatcher) OnImage ¶
func (m *MessageMatchDispatcher) OnImage(handlers ...MessageContextHandler)
OnImage 注册处理消息类型为Image的处理函数
func (*MessageMatchDispatcher) OnMedia ¶
func (m *MessageMatchDispatcher) OnMedia(handlers ...MessageContextHandler)
OnMedia 注册处理消息类型为Media(多媒体消息,包括但不限于APP分享、文件分享)的处理函数
func (*MessageMatchDispatcher) OnRecalled ¶
func (m *MessageMatchDispatcher) OnRecalled(handlers ...MessageContextHandler)
OnRecalled 注册撤回消息类型的处理函数
func (*MessageMatchDispatcher) OnText ¶
func (m *MessageMatchDispatcher) OnText(handlers ...MessageContextHandler)
OnText 注册处理消息类型为Text的处理函数
func (*MessageMatchDispatcher) OnTrickled ¶
func (m *MessageMatchDispatcher) OnTrickled(handlers ...MessageContextHandler)
OnTrickled 注册处理消息类型为拍一拍的处理函数
func (*MessageMatchDispatcher) OnUser ¶
func (m *MessageMatchDispatcher) OnUser(f func(user *User) bool, handlers ...MessageContextHandler)
OnUser 注册根据消息发送者的行为是否匹配的消息处理函数
func (*MessageMatchDispatcher) OnVoice ¶
func (m *MessageMatchDispatcher) OnVoice(handlers ...MessageContextHandler)
OnVoice 注册处理消息类型为Voice的处理函数
func (*MessageMatchDispatcher) RegisterHandler ¶
func (m *MessageMatchDispatcher) RegisterHandler(matchFunc MatchFunc, handlers ...MessageContextHandler)
RegisterHandler 注册消息处理函数, 根据自己的需求自定义 matchFunc返回true则表示处理对应的handlers
func (*MessageMatchDispatcher) SetAsync ¶
func (m *MessageMatchDispatcher) SetAsync(async bool)
SetAsync 设置是否异步处理
type MessageProcessor ¶
type MessageProcessor interface {
ProcessMessage(msg *Message)
}
type MessageProcessorGroup ¶
type MessageProcessorGroup []MessageProcessor
func (MessageProcessorGroup) ProcessMessage ¶
func (g MessageProcessorGroup) ProcessMessage(msg *Message)
type MessageResponse ¶
type MessageResponse struct { BaseResponse BaseResponse LocalID string MsgID string }
type MessageResponseParser ¶
MessageResponseParser 消息响应解析器
func (*MessageResponseParser) MsgID ¶
func (p *MessageResponseParser) MsgID() (string, error)
MsgID 解析消息ID
func (*MessageResponseParser) SentMessage ¶
func (p *MessageResponseParser) SentMessage(msg *SendMessage) (*SentMessage, error)
SentMessage 返回 SentMessage
type MessageSenderMatchFunc ¶
type MessageType ¶
type MessageType int
MessageType 以Go惯用形式定义了PC微信所有的官方消息类型。 详见 message_test.go
Example (Output) ¶
for _, wxt := range []MessageType{ MsgTypeText, MsgTypeImage, MsgTypeVoice, MsgTypeVerify, MsgTypePossibleFriend, MsgTypeShareCard, MsgTypeVideo, MsgTypeEmoticon, MsgTypeLocation, MsgTypeApp, MsgTypeVoip, MsgTypeVoipNotify, MsgTypeVoipInvite, MsgTypeMicroVideo, MsgTypeSys, MsgTypeRecalled} { fmt.Printf("收到一条%s(type %d)\n", wxt, wxt) } fmt.Println("=======") for _, wxt := range []MessageType{10000, 6, 51} { wxtstr := wxt.String() if regexp.MustCompile(`^M`).MatchString(wxtstr) { wxtstr = "未知消息" } fmt.Printf("收到一条%s(type %d): %s\n", wxtstr, wxt, wxt) }
Output: 收到一条文本消息(type 1) 收到一条图片消息(type 3) 收到一条语音消息(type 34) 收到一条认证消息(type 37) 收到一条好友推荐消息(type 40) 收到一条名片消息(type 42) 收到一条视频消息(type 43) 收到一条表情消息(type 47) 收到一条地理位置消息(type 48) 收到一条APP消息(type 49) 收到一条VOIP消息(type 50) 收到一条VOIP结束消息(type 52) 收到一条VOIP邀请(type 53) 收到一条小视频消息(type 62) 收到一条系统消息(type 10000) 收到一条消息撤回(type 10002) ======= 收到一条系统消息(type 10000): 系统消息 收到一条未知消息(type 6): MessageType(6) 收到一条未知消息(type 51): MessageType(51)
const ( MsgTypeText MessageType = 1 // 文本消息 MsgTypeImage MessageType = 3 // 图片消息 MsgTypeVoice MessageType = 34 // 语音消息 MsgTypeVerify MessageType = 37 // 认证消息 MsgTypePossibleFriend MessageType = 40 // 好友推荐消息 MsgTypeVideo MessageType = 43 // 视频消息 MsgTypeEmoticon MessageType = 47 // 表情消息 MsgTypeLocation MessageType = 48 // 地理位置消息 MsgTypeApp MessageType = 49 // APP消息 MsgTypeVoip MessageType = 50 // VOIP消息 MsgTypeVoipNotify MessageType = 52 // VOIP结束消息 MsgTypeVoipInvite MessageType = 53 // VOIP邀请 MsgTypeMicroVideo MessageType = 62 // 小视频消息 MsgTypeSys MessageType = 10000 // 系统消息 MsgTypeRecalled MessageType = 10002 // 消息撤回 )
func (MessageType) String ¶
func (i MessageType) String() string
type Mp ¶
type Mp struct{ *User }
Mp 公众号对象
func (*Mp) SendFile ¶
func (m *Mp) SendFile(file io.Reader) (*SentMessage, error)
SendFile 发送文件消息给公众号
func (*Mp) SendImage ¶
func (m *Mp) SendImage(file io.Reader) (*SentMessage, error)
SendImage 发送图片消息给公众号
type Mps ¶
type Mps []*Mp
Mps 公众号组对象
func (Mps) GetByNickName ¶
GetByNickName 根据nickname查询一个Mp
func (Mps) GetByUserName ¶
GetByUserName 根据username查询一个Mp
func (Mps) SearchByNickName ¶
SearchByNickName 根据昵称查找
func (Mps) SearchByUserName ¶
SearchByUserName 根据用户名查找
type PushLogin ¶
type PushLogin struct {
// contains filtered or unexported fields
}
PushLogin 免扫码登录模式
type PushLoginResponse ¶
type PushLoginResponse struct { Ret string `json:"ret"` Msg string `json:"msg"` UUID string `json:"uuid"` }
func (PushLoginResponse) Err ¶
func (p PushLoginResponse) Err() error
func (PushLoginResponse) Ok ¶
func (p PushLoginResponse) Ok() bool
type RecommendInfo ¶
type RecommendInfo struct { OpCode int Scene int Sex int VerifyFlag int AttrStatus int64 QQNum int64 Alias string City string Content string NickName string Province string Signature string Ticket string UserName string }
RecommendInfo 一些特殊类型的消息会携带该结构体信息
type RetryLoginOption ¶
type RetryLoginOption struct { BaseBotLoginOption MaxRetryCount int // contains filtered or unexported fields }
RetryLoginOption 在登录失败后进行扫码登录
type RevokeMsg ¶
type RevokeMsg struct { SysMsg xml.Name `xml:"sysmsg"` Type string `xml:"type,attr"` RevokeMsg struct { OldMsgId int64 `xml:"oldmsgid"` MsgId int64 `xml:"msgid"` Session string `xml:"session"` ReplaceMsg string `xml:"replacemsg"` } `xml:"revokemsg"` }
RevokeMsg 撤回消息Content
type Self ¶
type Self struct { *User // contains filtered or unexported fields }
Self 自己,当前登录用户对象
func (*Self) AddFriendIntoManyGroups ¶
AddFriendIntoManyGroups 拉好友进多个群聊 AddFriendIntoGroups, 名字和上面的有点像
func (*Self) AddFriendsIntoGroup ¶
AddFriendsIntoGroup 拉多名好友进群 最好自己是群主,成功率高一点,因为有的群允许非群组拉人,而有的群不允许
func (*Self) ChkFrdGrpMpNil ¶
func (*Self) CreateGroup ¶
CreateGroup 创建群聊 topic 群昵称,可以传递字符串 friends 群员,最少为2个,加上自己3个,三人才能成群
func (*Self) FileHelper ¶
FileHelper 获取文件传输助手对象,封装成Friend返回
fh := self.FileHelper() // or fh := openwechat.NewFriendHelper(self)
func (*Self) ForwardMessageToFriends ¶
func (s *Self) ForwardMessageToFriends(msg *SentMessage, delay time.Duration, friends ...*Friend) error
ForwardMessageToFriends 转发给好友
func (*Self) ForwardMessageToGroups ¶
func (s *Self) ForwardMessageToGroups(msg *SentMessage, delay time.Duration, groups ...*Group) error
ForwardMessageToGroups 转发给群组
func (*Self) MPSubscribeList ¶
func (s *Self) MPSubscribeList() []*MPSubscribeMsg
MPSubscribeList 获取部分公众号文章列表
func (*Self) RemoveMemberFromGroup ¶
RemoveMemberFromGroup 从群聊中移除用户 Deprecated 无论是网页版,还是程序上都不起作用
func (*Self) RenameGroup ¶
RenameGroup 群组重命名 Deprecated
func (*Self) RevokeMessage ¶
func (s *Self) RevokeMessage(msg *SentMessage) error
RevokeMessage 撤回消息
sentMessage, err := friend.SendText("message") if err == nil { self.RevokeMessage(sentMessage) // or sentMessage.Revoke() }
func (*Self) SendEmoticonToFriend ¶
func (s *Self) SendEmoticonToFriend(friend *Friend, md5 string, file io.Reader) (*SentMessage, error)
SendEmoticonToFriend 发送表情给好友
func (*Self) SendEmoticonToFriends ¶
func (s *Self) SendEmoticonToFriends(md5 string, file io.Reader, delay time.Duration, friends ...*Friend) error
SendEmoticonToFriends 发送表情给好友
func (*Self) SendEmoticonToGroup ¶
SendImageToGroup 发送图片消息给群组
func (*Self) SendEmoticonToGroups ¶
func (s *Self) SendEmoticonToGroups(md5 string, file io.Reader, delay time.Duration, groups ...*Group) error
SendEmoticonToGroups 发送表情给群组
func (*Self) SendEmoticonToMp ¶
SendEmoticonToMp 发送表情给公众号
func (*Self) SendFileToFriend ¶
SendFileToFriend 发送文件给好友
func (*Self) SendFileToFriends ¶
SendFileToFriends 发送文件给好友
func (*Self) SendFileToGroup ¶
SendFileToGroup 发送文件给群组
func (*Self) SendFileToGroups ¶
SendFileToGroups 发送文件给群组
func (*Self) SendFileToMp ¶
SendFileToMp 发送文件给公众号
func (*Self) SendImageToFriend ¶
SendImageToFriend 发送图片消息给好友
func (*Self) SendImageToFriends ¶
SendImageToFriends 发送图片消息给好友
func (*Self) SendImageToGroup ¶
SendImageToGroup 发送图片消息给群组
func (*Self) SendImageToGroups ¶
SendImageToGroups 发送图片消息给群组
func (*Self) SendImageToMp ¶
SendImageToMp 发送图片消息给公众号
func (*Self) SendTextToFriend ¶
func (s *Self) SendTextToFriend(friend *Friend, text string) (*SentMessage, error)
SendTextToFriend 发送文本消息给好友
func (*Self) SendTextToFriends ¶
SendTextToFriends 发送文本消息给好友
func (*Self) SendTextToGroup ¶
func (s *Self) SendTextToGroup(group *Group, text string) (*SentMessage, error)
SendTextToGroup 发送文本消息给群组
func (*Self) SendTextToGroups ¶
SendTextToGroups 发送文本消息给群组
func (*Self) SendTextToMp ¶
func (s *Self) SendTextToMp(mp *Mp, text string) (*SentMessage, error)
SendTextToMp 发送文本消息给公众号
func (*Self) SendVideoToFriend ¶
SendVideoToFriend 发送视频给好友
func (*Self) SendVideoToFriends ¶
SendVideoToFriends 发送视频给好友
func (*Self) SendVideoToGroup ¶
SendVideoToGroup 发送视频给群组
func (*Self) SendVideoToGroups ¶
SendVideoToGroups 发送视频给群组
func (*Self) SendVideoToMp ¶
SendVideoToMp 发送视频消息给公众号
func (*Self) SetRemarkNameToFriend ¶
SetRemarkNameToFriend 设置好友备注 Deprecated 已经失效了
self.SetRemarkNameToFriend(friend, "remark") // or friend.SetRemarkName("remark")
func (*Self) UpdateMembersDetail ¶
UpdateMembersDetail 更新所有的联系人信息
type SendMessage ¶
type SendMessage struct { Type MessageType Content string FromUserName string ToUserName string LocalID string ClientMsgId string MediaId string `json:"MediaId,omitempty"` EmojiFlag int `json:"EmojiFlag,omitempty"` EMoticonMd5 string `json:"EMoticonMd5,omitempty"` }
SendMessage 发送消息的结构体
func NewEmoticonSendMessage ¶
func NewEmoticonSendMessage(fromUserName, toUserName, md5OrMediaId string) *SendMessage
NewEmoticonSendMessage 表情消息的构造方法
func NewMediaSendMessage ¶
func NewMediaSendMessage(msgType MessageType, fromUserName, toUserName, mediaId string) *SendMessage
NewMediaSendMessage 媒体消息的构造方法
func NewSendMessage ¶
func NewSendMessage(msgType MessageType, content, fromUserName, toUserName, mediaId string) *SendMessage
NewSendMessage SendMessage的构造方法
func NewTextSendMessage ¶
func NewTextSendMessage(content, fromUserName, toUserName string) *SendMessage
NewTextSendMessage 文本消息的构造方法
type SendMessageFunc ¶
type SendMessageFunc func() (*SentMessage, error)
type SentMessage ¶
type SentMessage struct { *SendMessage MsgId string // contains filtered or unexported fields }
SentMessage 已发送的信息
func (*SentMessage) ForwardToFriends ¶
func (s *SentMessage) ForwardToFriends(friends ...*Friend) error
ForwardToFriends 转发该消息给好友 该方法会阻塞直到所有好友都接收到消息 这里为了兼容以前的版本,默认休眠0.5秒,如果需要更快的速度,可以使用 SentMessage.ForwardToFriendsWithDelay
func (*SentMessage) ForwardToFriendsWithDelay ¶
func (s *SentMessage) ForwardToFriendsWithDelay(delay time.Duration, friends ...*Friend) error
ForwardToFriendsWithDelay 转发该消息给好友,延迟指定时间
func (*SentMessage) ForwardToGroups ¶
func (s *SentMessage) ForwardToGroups(groups ...*Group) error
ForwardToGroups 转发该消息给群组 该方法会阻塞直到所有群组都接收到消息 这里为了兼容以前的版本,默认休眠0.5秒,如果需要更快的速度,可以使用 SentMessage.ForwardToGroupsDelay
func (*SentMessage) ForwardToGroupsWithDelay ¶
func (s *SentMessage) ForwardToGroupsWithDelay(delay time.Duration, groups ...*Group) error
ForwardToGroupsWithDelay 转发该消息给群组, 延迟指定时间
type Serializer ¶
type Serializer interface { Encode(writer io.Writer, v interface{}) error Decode(reader io.Reader, v interface{}) error }
Serializer is an interface for encoding and decoding data.
type Session ¶
type Session struct { LoginInfo *LoginInfo Request *BaseRequest Response *WebInitResponse }
Session 会话信息,包含登录信息、请求信息、响应信息
type SyncCheckResponse ¶
func NewSyncCheckResponse ¶
func NewSyncCheckResponse(b []byte) (*SyncCheckResponse, error)
func (SyncCheckResponse) Err ¶
func (s SyncCheckResponse) Err() error
func (SyncCheckResponse) HasNewMessage ¶
func (s SyncCheckResponse) HasNewMessage() bool
func (SyncCheckResponse) NorMal ¶
func (s SyncCheckResponse) NorMal() bool
func (SyncCheckResponse) Success ¶
func (s SyncCheckResponse) Success() bool
type UploadResponse ¶
type UploadResponse struct { BaseResponse BaseResponse MediaId string }
type User ¶
type User struct { HideInputBarFlag int StarFriend int Sex int AppAccountFlag int VerifyFlag int ContactFlag int WebWxPluginSwitch int HeadImgFlag int SnsFlag int IsOwner int MemberCount int ChatRoomId int UniFriend int OwnerUin int Statues int AttrStatus int64 Uin int64 Province string City string Alias string DisplayName string KeyWord string EncryChatRoomId string UserName string NickName string HeadImgUrl string RemarkName string PYInitial string PYQuanPin string RemarkPYInitial string RemarkPYQuanPin string Signature string MemberList Members // contains filtered or unexported fields }
User 抽象的用户结构: 好友 群组 公众号
func (*User) GetAvatarResponse ¶
GetAvatarResponse 获取用户头像
type UserAgentHook ¶
type UserAgentHook struct {
UserAgent string
}
func (UserAgentHook) AfterRequest ¶
func (u UserAgentHook) AfterRequest(_ *http.Response, _ error)
func (UserAgentHook) BeforeRequest ¶
func (u UserAgentHook) BeforeRequest(req *http.Request)
type UserDetailItem ¶
type UserDetailItemList ¶
type UserDetailItemList []UserDetailItem
func NewUserDetailItemList ¶
func NewUserDetailItemList(members Members) UserDetailItemList
type WebInitResponse ¶
type WebInitResponse struct { Count int ClientVersion int GrayScale int InviteStartCount int MPSubscribeMsgCount int ClickReportInterval int SystemTime int64 ChatSet string SKey string BaseResponse BaseResponse SyncKey *SyncKey User *User MPSubscribeMsgList []*MPSubscribeMsg ContactList Members }
WebInitResponse 初始化的相应信息
type WebWxBatchContactResponse ¶
type WebWxBatchContactResponse struct { Count int BaseResponse BaseResponse ContactList []*User }
type WebWxContactResponse ¶
type WebWxContactResponse struct { MemberCount int Seq int64 BaseResponse BaseResponse MemberList []*User }
type WebWxSyncResponse ¶
type WechatDomain ¶
type WechatDomain string
func (WechatDomain) BaseHost ¶
func (w WechatDomain) BaseHost() string
func (WechatDomain) FileHost ¶
func (w WechatDomain) FileHost() string
func (WechatDomain) SyncHost ¶
func (w WechatDomain) SyncHost() string
Source Files ¶
- base_response.go
- bot.go
- bot_login.go
- caller.go
- client.go
- cookie_entry_pre_go1.23.go
- cookiejar.go
- emoji.go
- entity.go
- errors.go
- generate.go
- global.go
- main.go
- message.go
- message_handle.go
- message_processor.go
- mode.go
- parser.go
- relations.go
- serializer.go
- session.go
- stringer.go
- stroage.go
- sync_check.go
- url.go
- user.go