mirror of https://gitee.com/godoos/godoos.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
2.0 KiB
46 lines
2.0 KiB
package dingtalk
|
|
|
|
import (
|
|
"fmt"
|
|
"godocms/pkg/dingtalk/payload"
|
|
"net/http"
|
|
"net/url"
|
|
)
|
|
|
|
// 根据手机号查询用户
|
|
func (ding *DingTalk) GetUserIdByMobile(mobile string) (resp payload.MobileGetUserIdResp, err error) {
|
|
return resp, ding.Request(http.MethodPost, GetUserIdByMobileKey, nil, payload.NewMobileGetUserIdReq(mobile), &resp)
|
|
}
|
|
|
|
// 获取jsapi_ticket => JSAPI(返回前端鉴权)
|
|
// JSAPI => auth_code(传递后端)
|
|
// auth_code + token => userid
|
|
// GetUserInfoByCode 通过免登码和access_token获取用户信息
|
|
func (ding *DingTalk) GetUserInfoByCode(code string) (resp payload.CodeGetUserInfo, err error) {
|
|
return resp, ding.Request(http.MethodPost, GetUserInfoByCodeKey, nil,
|
|
payload.NewCodeGetUserInfoReq(code), &resp)
|
|
}
|
|
|
|
// GetUserDetail 根据userid获取用户详情
|
|
func (ding *DingTalk) GetUserDetail(user *payload.UserDetailReq) (resp payload.UserDetailResp, err error) {
|
|
return resp, ding.Request(http.MethodPost, GetUserDetailKey, nil, user, &resp)
|
|
}
|
|
|
|
// GetCurrentUserByAccessToken 通UserAccessToken获取当前授权人的信息
|
|
func (ding *DingTalk) GetCurrentUserByAccessToken(userAccessToken string) (rsp payload.ContactUser, err error) {
|
|
query := url.Values{}
|
|
query.Set("access_token", userAccessToken)
|
|
return rsp, ding.Request(http.MethodGet, fmt.Sprintf(GetContactUser, "me"), query, nil, &rsp)
|
|
}
|
|
|
|
// GetContactUser 获取用户通讯录个人信息
|
|
// 调用本接口获取企业用户通讯录中的个人信息。
|
|
// @see https://open.dingtalk.com/document/orgapp/dingtalk-retrieve-user-information?spm=ding_open_doc.document.0.0.58b9492dZxH66f
|
|
func (ding *DingTalk) GetContactUser(unionId string) (rsp payload.ContactUser, err error) {
|
|
return rsp, ding.Request(http.MethodGet, fmt.Sprintf(GetContactUser, unionId), nil, nil, &rsp)
|
|
}
|
|
|
|
// GetUserIdByUnionId 根据unionid获取用户userid
|
|
func (ding *DingTalk) GetUserIdByUnionId(res *payload.UnionIdGetUserIdReq) (req payload.UnionIdGetUserIdResponse, err error) {
|
|
return req, ding.Request(http.MethodPost, GetUserIdByUnionIdKey, nil, res, &req)
|
|
}
|
|
|