mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
企业微信userid与openid互换 (#676)
* 企业微信-客户联系-统计管理 * 企业微信-客户联系-统计管理 * 企业微信-客户联系-统计管理 * debug * rollback * debug * debug * 获取用户信息 * token * json.Marshal错误输出 * debug * bugfix * 企业微信-通讯录管理相关接口 * 企业微信-通讯录管理 * 企业微信-通讯录管理 * 企业微信-通讯录管理 * 企业微信-[联系我]方式新增和查询 * 企业微信-[联系我]方式新增和获取 * 企业微信-[联系我]方式更新 * 企业微信-[联系我]方式列表、删除 * json.Marshal错误输出 * 已实现接口bug修改 * 历史接口bugfix * 历史接口bugfix * comment * 企业微信:客户联系-消息推送;素材管理-上传图片 * fix * 企业微信-获取群发记录列表 * 历史接口bugfix * 1.企业微信-客户联系-消息推送-入群欢迎语素材管理 2.企业微信-通讯录管理-成员管理-获取成员ID列表 * golangci-lint * gofmt * 方法访问命名 * 企业微信-批量获取客户详情入参优化 * 企业微信-通讯录管理-标签管理-创建/更新/删除标签 * 请求地址常量无需导出 * 企业微信保持代码风格统一,接口URL不导出 * 企业微信-通讯录管理-标签管理-获取/增加/删除标签成员、获取标签列表 * feat:企业微信userid与openid互换 --------- Co-authored-by: wang.yu <wangyu@uniondrug.com> Co-authored-by: markwang <www.wang61@qq.com>
This commit is contained in:
@@ -13,6 +13,10 @@ const (
|
|||||||
userGetURL = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=%s&userid=%s"
|
userGetURL = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=%s&userid=%s"
|
||||||
// userListIDURL 获取成员ID列表
|
// userListIDURL 获取成员ID列表
|
||||||
userListIDURL = "https://qyapi.weixin.qq.com/cgi-bin/user/list_id?access_token=%s"
|
userListIDURL = "https://qyapi.weixin.qq.com/cgi-bin/user/list_id?access_token=%s"
|
||||||
|
// convertToOpenIDURL userID转openID
|
||||||
|
convertToOpenIDURL = "https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_openid?access_token=%s"
|
||||||
|
// convertToUserIDURL openID转userID
|
||||||
|
convertToUserIDURL = "https://qyapi.weixin.qq.com/cgi-bin/user/convert_to_userid?access_token=%s"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@@ -175,3 +179,75 @@ func (r *Client) UserListID(req *UserListIDRequest) (*UserListIDResponse, error)
|
|||||||
}
|
}
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
// convertToOpenIDRequest userID转openID请求
|
||||||
|
convertToOpenIDRequest struct {
|
||||||
|
UserID string `json:"userid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertToOpenIDResponse userID转openID响应
|
||||||
|
convertToOpenIDResponse struct {
|
||||||
|
util.CommonError
|
||||||
|
OpenID string `json:"openid"`
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ConvertToOpenID userID转openID
|
||||||
|
// see https://developer.work.weixin.qq.com/document/path/90202
|
||||||
|
func (r *Client) ConvertToOpenID(userID string) (string, error) {
|
||||||
|
var (
|
||||||
|
accessToken string
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
var response []byte
|
||||||
|
if response, err = util.PostJSON(fmt.Sprintf(convertToOpenIDURL, accessToken), &convertToOpenIDRequest{
|
||||||
|
UserID: userID,
|
||||||
|
}); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
result := &convertToOpenIDResponse{}
|
||||||
|
if err = util.DecodeWithError(response, result, "ConvertToOpenID"); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return result.OpenID, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type (
|
||||||
|
// convertToUserIDRequest openID转userID请求
|
||||||
|
convertToUserIDRequest struct {
|
||||||
|
OpenID string `json:"openid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// convertToUserIDResponse openID转userID响应
|
||||||
|
convertToUserIDResponse struct {
|
||||||
|
util.CommonError
|
||||||
|
UserID string `json:"userid"`
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
// ConvertToUserID openID转userID
|
||||||
|
// see https://developer.work.weixin.qq.com/document/path/90202
|
||||||
|
func (r *Client) ConvertToUserID(openID string) (string, error) {
|
||||||
|
var (
|
||||||
|
accessToken string
|
||||||
|
err error
|
||||||
|
)
|
||||||
|
if accessToken, err = r.GetAccessToken(); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
var response []byte
|
||||||
|
if response, err = util.PostJSON(fmt.Sprintf(convertToUserIDURL, accessToken), &convertToUserIDRequest{
|
||||||
|
OpenID: openID,
|
||||||
|
}); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
result := &convertToUserIDResponse{}
|
||||||
|
if err = util.DecodeWithError(response, result, "ConvertToUserID"); err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return result.UserID, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user