From eebfb9338699f8c04270381b84374781dedc858d Mon Sep 17 00:00:00 2001 From: markwang <617514823@qq.com> Date: Thu, 22 Jan 2026 19:18:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=81=E4=B8=9A=E5=BE=AE=E4=BF=A1-?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=88=90=E5=91=98UserID=20(#876)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- work/addresslist/user.go | 59 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/work/addresslist/user.go b/work/addresslist/user.go index dd9d43f..baeb5fe 100644 --- a/work/addresslist/user.go +++ b/work/addresslist/user.go @@ -32,6 +32,10 @@ const ( batchInviteURL = "https://qyapi.weixin.qq.com/cgi-bin/batch/invite?access_token=%s" // getJoinQrcodeURL 获取加入企业二维码 getJoinQrcodeURL = "https://qyapi.weixin.qq.com/cgi-bin/corp/get_join_qrcode" + // getUseridURL 手机号获取userid + getUseridURL = "https://qyapi.weixin.qq.com/cgi-bin/user/getuserid?access_token=%s" + // getUseridByEmailURL 邮箱获取userid + getUseridByEmailURL = "https://qyapi.weixin.qq.com/cgi-bin/user/get_userid_by_email?access_token=%s" ) type ( @@ -564,3 +568,58 @@ func (r *Client) GetJoinQrcode(req *GetJoinQrcodeRequest) (*GetJoinQrcodeRespons err = util.DecodeWithError(response, result, "GetJoinQrcode") return result, err } + +// GetUseridRequest 手机号获取userid请求 +type GetUseridRequest struct { + Mobile string `json:"mobile"` +} + +// GetUseridResponse 获取userid响应 +type GetUseridResponse struct { + util.CommonError + Userid string `json:"userid"` +} + +// GetUserid 手机号获取userid +// see https://developer.work.weixin.qq.com/document/path/95402 +func (r *Client) GetUserid(req *GetUseridRequest) (*GetUseridResponse, error) { + var ( + accessToken string + err error + ) + if accessToken, err = r.GetAccessToken(); err != nil { + return nil, err + } + var response []byte + if response, err = util.PostJSON(fmt.Sprintf(getUseridURL, accessToken), req); err != nil { + return nil, err + } + result := &GetUseridResponse{} + err = util.DecodeWithError(response, result, "GetUserid") + return result, err +} + +// GetUseridByEmailRequest 邮箱获取userid请求 +type GetUseridByEmailRequest struct { + Email string `json:"email"` + EmailType int `json:"email_type,omitempty"` +} + +// GetUseridByEmail 邮箱获取userid +// see https://developer.work.weixin.qq.com/document/path/95895 +func (r *Client) GetUseridByEmail(req *GetUseridByEmailRequest) (*GetUseridResponse, error) { + var ( + accessToken string + err error + ) + if accessToken, err = r.GetAccessToken(); err != nil { + return nil, err + } + var response []byte + if response, err = util.PostJSON(fmt.Sprintf(getUseridByEmailURL, accessToken), req); err != nil { + return nil, err + } + result := &GetUseridResponse{} + err = util.DecodeWithError(response, result, "GetUseridByEmail") + return result, err +}