72 lines
2.0 KiB
Go
72 lines
2.0 KiB
Go
package core
|
|
|
|
import "github.com/goWxHook/goWxHook/utils/json"
|
|
|
|
type GetLoginUserInfoResponseData struct {
|
|
Account string `json:"account"`
|
|
Avatar string `json:"avatar"`
|
|
Nickname string `json:"nickname"`
|
|
Wxid string `json:"wxid"`
|
|
Phone string `json:"phone"`
|
|
Pid int `json:"pid"`
|
|
UnreadMsgCount int `json:"unread_msg_count"`
|
|
WxUserDir string `json:"wx_user_dir"`
|
|
}
|
|
type GetLoginUserInfoResponse struct {
|
|
Data GetLoginUserInfoResponseData `json:"data"`
|
|
Type int `json:"type"`
|
|
}
|
|
|
|
// GetLoginUserInfo 获取登录用户信息
|
|
func (w *WxApi) GetLoginUserInfo() (*GetLoginUserInfoResponseData, error) {
|
|
resp, err := w.internalCall(MtDataOwnerMsg, 10, MtDataOwnerMsg, nil, map[string]interface{}{})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var rdata GetLoginUserInfoResponse
|
|
debugOutput(resp)
|
|
err = json.Unmarshal([]byte(resp), &rdata)
|
|
if err != nil {
|
|
return nil, WxError{-1, err.Error()}
|
|
}
|
|
return &rdata.Data, nil
|
|
}
|
|
|
|
type RefreshLoginQrcodeResponse struct {
|
|
Data RefreshLoginQrCodeResponseData `json:"data"`
|
|
Type int `json:"type"`
|
|
}
|
|
|
|
type RefreshLoginQrCodeResponseData struct {
|
|
File string `json:"file"`
|
|
Qrcode string `json:"qrcode"`
|
|
Pid int `json:"pid"`
|
|
}
|
|
|
|
// RefreshLoginQrCode 刷新登录二维码
|
|
func (w *WxApi) RefreshLoginQrCode() (*RefreshLoginQrCodeResponseData, error) {
|
|
resp, err := w.internalCall(MtRefreshLoginQrcode, 10, MtRefreshLoginQrcode, map[string]interface{}{}, nil)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
var rdata RefreshLoginQrcodeResponse
|
|
debugOutput(resp)
|
|
err = json.Unmarshal([]byte(resp), &rdata)
|
|
if err != nil {
|
|
return nil, WxError{-1, err.Error()}
|
|
}
|
|
return &rdata.Data, nil
|
|
}
|
|
|
|
// WxUserLogout 注销登录
|
|
func (w *WxApi) WxUserLogout() error {
|
|
_, err := w.internalCall(0, 10, MtLogoutMsg, nil, map[string]interface{}{})
|
|
return err
|
|
}
|
|
|
|
// WxExit 退出微信
|
|
func (w *WxApi) WxExit() error {
|
|
_, err := w.internalCall(0, 10, MtExitMsg, nil, map[string]interface{}{})
|
|
return err
|
|
}
|