-
Notifications
You must be signed in to change notification settings - Fork 10
/
api_authentication_caller.go
57 lines (50 loc) · 1.69 KB
/
api_authentication_caller.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package sdk
import (
"github.com/polaris-team/dingtalk-sdk-golang/http"
"github.com/polaris-team/dingtalk-sdk-golang/json"
)
//第三方企业应用免登(获取用户userid)
//https://open-doc.dingtalk.com/microapp/serverapi3/xcdh0r
func (client *DingTalkClient) GetUserInfoFromThird(code string) (GetUserInfoFromThirdResp, error) {
params := map[string]string{
"access_token": client.AccessToken,
"code": code,
}
body, err := http.Get("https://oapi.dingtalk.com/user/getuserinfo", params)
resp := GetUserInfoFromThirdResp{}
if err != nil {
return resp, err
}
json.FromJson(body, &resp)
return resp, err
}
//应用管理后台免登(获取应用管理员的身份信息)
//https://open-doc.dingtalk.com/microapp/serverapi3/ydc8us
func (client *DingTalkClient) GetUserInfoFromAdmin(code string) (GetUserInfoFromAdminResp, error) {
params := map[string]string{
"access_token": client.AccessToken,
"code": code,
}
body, err := http.Get("https://oapi.dingtalk.com/sso/getuserinfo", params)
resp := GetUserInfoFromAdminResp{}
if err != nil {
return resp, err
}
json.FromJson(body, &resp)
return resp, err
}
//服务端通过临时授权码获取授权用户的个人信息
//https://open-doc.dingtalk.com/microapp/serverapi3/vmzkak
func (client *DingTalkOauthClient) GetUserInfoByCode(code string) (GetUserInfoByCodeResp, error) {
params := map[string]string{
"tmp_auth_code": code,
}
paramsJson, _ := json.ToJson(params)
body, err := ExcuteOapi("https://oapi.dingtalk.com/sns/getuserinfo_bycode", client.OauthAppId, client.OauthAppSecret, paramsJson)
resp := GetUserInfoByCodeResp{}
if err != nil {
return resp, err
}
json.FromJson(body, &resp)
return resp, err
}