Compare commits
5 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
a40aecaac5 | |
|
|
99194745a9 | |
|
|
36d97c097e | |
|
|
1419dc2310 | |
|
|
476e0fe4a2 |
57
api_sns.go
57
api_sns.go
|
|
@ -9,6 +9,26 @@ import (
|
||||||
|
|
||||||
type SnsUserInfoResponse struct {
|
type SnsUserInfoResponse struct {
|
||||||
OAPIResponse
|
OAPIResponse
|
||||||
|
Userid string
|
||||||
|
Name string
|
||||||
|
Mobile string
|
||||||
|
Tel string
|
||||||
|
Remark string
|
||||||
|
Order int
|
||||||
|
IsAdmin bool
|
||||||
|
IsBoss bool
|
||||||
|
IsLeader bool
|
||||||
|
Active bool
|
||||||
|
Department []int
|
||||||
|
Position string
|
||||||
|
Email string
|
||||||
|
OrgEmail string
|
||||||
|
Avatar string
|
||||||
|
Extattr interface{}
|
||||||
|
}
|
||||||
|
|
||||||
|
type SnsUserResponse struct {
|
||||||
|
OAPIResponse
|
||||||
|
|
||||||
CorpInfo []struct {
|
CorpInfo []struct {
|
||||||
CorpName string `json:"corp_name"`
|
CorpName string `json:"corp_name"`
|
||||||
|
|
@ -26,8 +46,39 @@ type SnsUserInfoResponse struct {
|
||||||
} `json:"user_info"`
|
} `json:"user_info"`
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取用户授权的个人信息
|
//SnsUserInfo 获取用户授权的个人信息详情
|
||||||
func (c *DingTalkClient) SnsUserInfo(code string) (SnsUserInfoResponse, error) {
|
func (c *DingTalkClient) SnsUserInfo(userid string) (*SnsUserInfoResponse, error) {
|
||||||
|
|
||||||
|
var data SnsUserInfoResponse
|
||||||
|
params := url.Values{}
|
||||||
|
params.Add("userid", userid)
|
||||||
|
err := c.httpRPC("user/get", params, nil, &data)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &data, err
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// SnsUserid 获取用户ID
|
||||||
|
func (c *DingTalkClient) SnsUserID(unionid string) (*string, error) {
|
||||||
|
var data struct {
|
||||||
|
OAPIResponse
|
||||||
|
UserID string `json:"userid"`
|
||||||
|
}
|
||||||
|
|
||||||
|
params := url.Values{}
|
||||||
|
params.Add("unionid", unionid)
|
||||||
|
err := c.httpRPC("user/getUseridByUnionid", params, nil, &data)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
return &data.UserID, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//SnsUser 获取用户授权的个人信息
|
||||||
|
func (c *DingTalkClient) SnsUser(code string) (SnsUserResponse, error) {
|
||||||
ts := strconv.FormatInt(time.Now().UnixNano()/1000000, 10)
|
ts := strconv.FormatInt(time.Now().UnixNano()/1000000, 10)
|
||||||
params := url.Values{}
|
params := url.Values{}
|
||||||
params.Add("accessKey", c.AppKey)
|
params.Add("accessKey", c.AppKey)
|
||||||
|
|
@ -38,7 +89,7 @@ func (c *DingTalkClient) SnsUserInfo(code string) (SnsUserInfoResponse, error) {
|
||||||
Code string `json:"tmp_auth_code"`
|
Code string `json:"tmp_auth_code"`
|
||||||
}{code}
|
}{code}
|
||||||
|
|
||||||
var data SnsUserInfoResponse
|
var data SnsUserResponse
|
||||||
err := c.httpRequest("sns/getuserinfo_bycode", params, body, &data)
|
err := c.httpRequest("sns/getuserinfo_bycode", params, body, &data)
|
||||||
return data, err
|
return data, err
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,25 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestSnsUserInfo(t *testing.T) {
|
func TestSnsUserInfo(t *testing.T) {
|
||||||
userinfo, err := c.SnsUserInfo("f9f9ba22256136f29a7fb3dd5d26c24c")
|
userinfo, err := c.SnsUserInfo("351313653629177902")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err.Error())
|
t.Fatal(err.Error())
|
||||||
}
|
}
|
||||||
fmt.Println(userinfo)
|
fmt.Println(userinfo)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSnsUser(t *testing.T) {
|
||||||
|
user, err := c.SnsUser("89f253f7c25333878f27d66f5f0f7bc9")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
fmt.Println(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestSnsUserID(t *testing.T) {
|
||||||
|
userid, err := c.SnsUserID("rCn0WRcRdrnWRBsDyWEQKwiEiE")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
fmt.Println(userid)
|
||||||
|
}
|
||||||
|
|
|
||||||
10
go.mod
10
go.mod
|
|
@ -1,13 +1,3 @@
|
||||||
module myschools.me/suguo/godingtalk
|
module myschools.me/suguo/godingtalk
|
||||||
|
|
||||||
go 1.13
|
go 1.13
|
||||||
|
|
||||||
require (
|
|
||||||
github.com/google/go-github v17.0.0+incompatible
|
|
||||||
github.com/google/go-querystring v1.0.0 // indirect
|
|
||||||
github.com/ipandtcp/godingtalk v0.0.0-20180410032244-ca3d6ac197fb
|
|
||||||
golang.org/x/net v0.0.0-20190603091049-60506f45cf65
|
|
||||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45
|
|
||||||
google.golang.org/api v0.10.0
|
|
||||||
google.golang.org/appengine v1.6.4
|
|
||||||
)
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue