tt/core/callapi_login.go
2024-05-28 08:47:31 +08:00

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
}